最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

vue.js的数据传递与数据分发步骤详解

来源:懂视网 责编:小采 时间:2020-11-27 19:55:34
文档

vue.js的数据传递与数据分发步骤详解

vue.js的数据传递与数据分发步骤详解:这次给大家带来vue.js的数据传递与数据分发步骤详解,vue.js数据传递与数据分发的注意事项有哪些,下面就是实战案例,一起来看一下。一、组件间的数据传递 1.父组件获取子组件的数据。 *子组件把自己的数据,发送到父级 *vm.$emit(事件名,数据); *v
推荐度:
导读vue.js的数据传递与数据分发步骤详解:这次给大家带来vue.js的数据传递与数据分发步骤详解,vue.js数据传递与数据分发的注意事项有哪些,下面就是实战案例,一起来看一下。一、组件间的数据传递 1.父组件获取子组件的数据。 *子组件把自己的数据,发送到父级 *vm.$emit(事件名,数据); *v

这次给大家带来vue.js的数据传递与数据分发步骤详解,vue.js数据传递与数据分发的注意事项有哪些,下面就是实战案例,一起来看一下。

一、组件间的数据传递

1.父组件获取子组件的数据??

*子组件把自己的数据,发送到父级

*vm.$emit(事件名,数据);

*v-on: @

示例用法:当点击send按钮的时候,“111”变成“我是子组件的数据”

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>父级获取子级的数据</title>
 <script src="bower_components/vue/dist/vue.js"></script>
 <style>
 </style>
</head>
<body>
<p>
 <aaa>
 </aaa>
</p>
<template>
 <span>我是父级 -> {{msg}}</span>
 //自动调用get方法,@child-msg和下面的this.$emit('child-msg',this.a)相对应
 <bbb @child-msg="get"></bbb>
</template>
<template>
 <h3>子组件-</h3>
 <input type="button" value="send" @click="send">
</template>
<script>
 var vm=new Vue({
 el:'#box',
 data:{
 a:'aaa'
 },
 components:{
 'aaa':{
 data:function(){
 return {
 msg:111,
 msg2:'我是父组件的数据'
 }
 },
 template:'#aaa',
 methods:{
 //这里的msg实际上就是子组件传递给父组件的数据
 get:function(msg){
 this.msg=msg;
 }
 },
 components:{
 'bbb':{
 data:function(){
 return {
 a:'我是子组件的数据'
 }
 },
 template:'#bbb',
 methods:{
 send:function(){
 this.$emit('child-msg',this.a);
 }
 }
 }
 }
 }
 }
 });
</script>
</body>
</html>

2、子组件获取父组件的数据

在调用子组件:

<bbb :m="数据"></bbb>

子组件之内:

props:['m','myMsg']
props:{
'm':String,
'myMsg':Number
????????}
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>自己获取父级的数据</title>
 <script src="bower_components/vue/dist/vue.js"></script>
 <style>
 </style>
</head>
<body>
<p>
 <p>{{a}}</p>
 <aaa>
 {{msg}}
 </aaa>
</p>
<template>
 <h1>11111</h1>
 <bbb :mmm="msg2" :my-msg="msg"></bbb>
</template>
<script>
 var vm=new Vue({
 el:'#box',
 data:{
 a:'a'
 },
 components:{
 'aaa':{
 data:function(){
 return {
 msg:111,
 msg2:'我是父组件的数据'
 }
 },
 template:'#aa',
 components:{
 'bbb':{
 props:{
 'mmm':String,
 'myMsg':Number
 },
 template:'<h3>我是bbb组件->{{mmm}} <br> {{myMsg}}</h3>'
 }
 }
 }
 }
 });
</script>
</body>
</html>

运行结果:

vue.js数据传递以及数据分发slot的教程

二、内容分发:

Vue.js提供了一种混合父组件内容与子组件自己模版的方式:slot,用来占一个位置

1、基本用法?

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>slot保留原来的位置</title>
 <script src="bower_components/vue/dist/vue.js"></script>
 <style>
 </style>
</head>
<body>
<p>
 <aaa>
 <ul>
 <li>1111</li>
 <li>2222</li>
 <li>3333</li>
 </ul>
 </aaa>
 <hr>
 <aaa>
 </aaa>
</p>
<template>
 <h1>xxxx</h1>
 <slot>这是默认的情况</slot>
 <p>welcome vue</p>
</template>
<script>
 var vm=new Vue({
 el:'#box',
 data:{
 a:'aaa'
 },
 components:{
 'aaa':{
 template:'#aaa'
 }
 }
 });
</script>
</body>
</html>

运行结果:ul标签里面的内容没有被覆盖,如果不使用slot,ul标签里的内容将会被覆盖

vue.js数据传递以及数据分发slot的教程

2、slot的name属性?

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>slot中name属性的使用</title>
 <script src="bower_components/vue/dist/vue.js"></script>
 <style>
 </style>
</head>
<body>
<p>
 <aaa>
 <ul slot="ul-slot">????//这里slot的名字要与下面slot中name属性相对应
 <li>1111</li>
 <li>2222</li>
 <li>3333</li>
 </ul>
 <ol slot="ol-slot">????//用法同上
 <li>111</li>
 <li>222</li>
 <li>333</li>
 </ol>
 </aaa>
 <hr>
 <aaa>
 </aaa>
</p>
<template>??
 <h1>xxxx</h1>
 <slot name="ol-slot">这是默认的情况</slot>??????//设置name属性,给slot命名
 <p>welcome vue</p>
 <slot name="ul-slot">这是默认的情况2</slot>
</template>
<script>
 var vm=new Vue({
 el:'#box',
 data:{
 a:'aaa'
 },
 components:{
 'aaa':{
 template:'#aaa'
 }
 }
 });
</script>
</body>
</html>

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

Vue怎么进行ajax请求公共方法

JS里EventLoop的使用详解

文档

vue.js的数据传递与数据分发步骤详解

vue.js的数据传递与数据分发步骤详解:这次给大家带来vue.js的数据传递与数据分发步骤详解,vue.js数据传递与数据分发的注意事项有哪些,下面就是实战案例,一起来看一下。一、组件间的数据传递 1.父组件获取子组件的数据。 *子组件把自己的数据,发送到父级 *vm.$emit(事件名,数据); *v
推荐度:
标签: 步骤 数据 VUE
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top