vue组件间传值

一. 子组件向父组件传值 - $emit 发射事件
父子组件传值.png
1. 子组件$emit发射事件A
   this.$emit(event,...argument);
   /*
   * event: 要触发的事件
   * argument: 传给父组件的参数
   */ 
   例子:this.$emit('emitEvent',data,'lalala');
2. 父组件通过事件名A接收
<part-template @emitEvent = "ievent"></i-template>
methods:{
    ievent(...data){
        console.log('allData:',data);    // data为包含传过来所有数据的数组,第一个元素是对象,第二个元素是字符串
    }
}
二. 父组件向子组件传值 - props传值
1. 在父组件import引入封装出去的子组件
import dialogAttendee from "../../activity/component/dialogAttendee";
2. 在父组件视图模板中,通过 : 变量 占位传值
<dialogAttendee :dialogcascaderVisible="dialogcascaderVisible" @dialogClose="dialogClose"></dialogAttendee>
3. 在子组件通过props接收值,像本组件的data中定义的变量一样使用(this获取)
props:{  
    dialogcascaderVisible: {
        type: Boolean,
        default: false
    },
    reservation:Array,
}
三. watch监听值变化
  1. watch是一个对象,有键(要监听的对象),值(对象发生变化,执行的函数。
  2. 值可以是函数,也可以是函数名。
data: {  
    c: {  
        name: '小强',  
        age: 20,  
        sex: '男'  
    },  
    tdArray:["1","2"],  
},  
watch: {
    a: function (val, oldVal) { //新值,旧值
      console.log('new: %s, old: %s', val, oldVal)
    },
    
    b: 'someMethod', // 函数名
   
    c: { // 包括选项的对象
      handler: function (val, oldVal) { /* ... */ }, //监听变化时执行回调函数
      deep: true,//监听对象的属性,需要深度监听;数组不需要。
      immediate: true
    }
    
    'c.name':function(val,oldval){ //键路径必须加引号
         console.log(val+"aaa")  
    }   
  }
四. 注意事项
  1. 在Vue2中组件的props的数据流动只能单向流动。即只能由组件外(调用组件方)通过组件的DOM属性attribute传递props给组件内,组件内只能被动接收组件外传递过来的数据,并且在组件内,不能修改由外层传来的props数据。
  2. 父组件可以通过自定义属性向子组件传值;子组件通过props来接收;子组件不能直接修改父组件传递过来的数据;子组件可以通过$emit()方法去间接调用父组件中的方法去更改父组件中的数据。
五. 父组件引用封装出去的子组件
<template>  
    <div>  
        <testComponent></testComponent> <!-- 3.通过定义的子组件名以标签形式直接使用 -->  
    </div>  
</template>  
  
<script>  
    import testComponent from './testComponent.vue' //1.先使用import导入你要在该组件中使用的子组件  
    export default {  
        components: {testComponent}, //2.然后在components属性中写入子组件  
        methods: {},   
    }  
</script>  
六. 动态组件

1.通过使用预定义的标签< compnent >可以动态的绑定其is特性,使得多个组件有一个共同的挂载点,实现动态切换。

  1. < keep-alive >标签会把切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。
<button @click="toggle('home')">显示主页</button>
<button @click="toggle('list')">显示列表页</button>
<keep-alive>
    <component :is="currentView"></component>
</keep-alive>

//修改currentView变量,切换组件名
 methods: {
     toggle(com) {   this.currentView = home;  }
 }
七. 兄弟组件传值:bus总线传值
  • 非父子组件之间不能直接通讯,必须使用“代理人”,即中央数据总线过渡。
var bus = new Vue();
  • A组件向B组件传值,A组件中要通过bus总线触发相应的事件;
bus.$emit('sendtoTwo', this.one)
  • B组件要在钩子函数中监听相应的事件。
mounted() {        // 监听sendtoTwo, 事件监听也可以写到created钩子函数
   bus.$on('sendtoTwo', (data) => {
       this.two = data;
   })
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容