vue中$refs, $emit, $on, $once, $off的使用详解

时间:2013.11.16 发布人:zbx168108

vue中$refs, $emit, $on, $once, $off的使用详解

已解决问题

谷歌zbx168108用户在2013.11.16提交了关于“芭提雅vue中$refs, $emit, $on, $once, $off的使用详解”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-24T00:31:15。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,我不知道说什么才好,除了谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:nnagad  

1.$refs的使用场景

父组件调用子组件的方法,可以传递**。

父组件:

<divid="app"><child-aref="child"></child-a><bu问答tton@click="getMyEvent">点击父组件</button><div><script>importChildAfrom'./child.vue'exportdefault{components:{ChildA},data(){return{msg:'我是父组件的**'}},methods:{getMyEvent(){//调用子组件的方法,child是上边ref起的名责迫福宁衣富七有字,emitEvent是子组件预首践诗的方法。this.$refs.child.emitEvent(this.msg)}}}</script>

子组件:

<template><button>点击我</button></template><script>exportdefault{methods:{emitEvent(m弦营通白组议差罗促否松sg){console.log('接收的**------'+见项几磁画区msg)}}}</script>

2.班收口第每河读巴门外$emit的使用

子组件调用苗践掌亮鲜氢负武耐争破父组件的方法并传递**。

子组件:

<template><button@click="emitEvent">点击我</button></template><script>exportdefault{data(){return{msg:'我命陈感微搞里庆七划几是子组件的**'}},methods:{emitEvent(){//通过按钮的点击事件触发方法斤,然后用$emit触发一个my-event的自定义方法,传递this.msg**。this.$emit('my-event',this.msg)}}}</script>

父组件:

<template><divid="app"><child-a@my-event="getMyEvent"></child-a>//父组件通过监测my-event事件执行一个方法,然后取集书钢基部构达细教能领到子组件中传递过来的值。</div></务述触未让能template><script>importchildAfrom'./child.vue';exportdefault{components:{childA},methods:{getMyEvent(msg){console.lo始处个黑千专g('接收**---'+msg);//接收数据,我是子组件的**}}}</script>

3.$on的使用场景

兄弟组件之间相互传递**。

首先创建一个Vue的空白实例(兄弟组件的桥梁)

importVuefrom'vue';exportdefaultnewVue();

组件A:发送放使用$emit自定义事件把**带过去。

<template><div><span>A组件-{{msg}}</span><inputty互线三互pe="button"value="把A组件**传递给B"@click="send"></div></template><script>importeve水激长率紧将受ntBusfrom'./eventBus';袁严念又教英exportdefault{data(){return{ms菜乱粉领点掉脚去照g:{a:'111',b:'222'}}},me往输做创thods:{send(){eventBus.$emit('aevent',th资知强农is.msg)}}}</script>

子组件B:接收方通过$on**自定义事件的callback接收**

<template><d红兴法唱致又乱著的iv><span>B组件,A传的**为--{{msg}}</span></div></template><script>importeventBusfrom'./eventBus.vue'exportdefault{data(){return{msg:''}},mounted(){eventBus.$on('aevent',(val)=>{//**事件aevent,回调函数要使用箭头函数。console.log(val);//打印结果;我是a组件的**。})}}</script>

父组件:

<template><div><childa></childa><br/><childb></childb></div></template><script>importchildafrom'./childa.vue';importchildbfrom'./childb.vue';exportdefault{componets:{childa,childb},data(){return{msg:''}}}</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:Vue$emit$refs子父组件间方法的调用实例vue.js$refs和$emit父子组件交互的方法解决Vue.js父组件$on无法**子组件$emit触发事件的问题vue中的$emit与$on父子组件与兄弟组件的之间通信方式vuejs使用$emit和$on进行组件之间的传值的示例vue2.0中#$emit,$on的使用详解Vuejs用$emit与$on来进行兄弟组件之间的**传输通信