uni

您所在的位置:网站首页 uniapp递归组件 uni

uni

#uni| 来源: 网络整理| 查看: 265

$emit、$on、$off常用于跨页面、跨组件通讯 uni.$emit(eventName,OBJECT)  触发全局的自定事件。 uni.$on(eventName,callback)  监听全局的自定义事件。事件可以由 uni.$emit 触发,回调函数会接收所有传入事件触发函数的额外参数。 uni.$off([eventName, callback])  移除全局自定义事件监听器 一、父组件给子组件传递数据

子组件通过props接收外界传递到组件内部的值

// 父 index.vue 通过属性绑定进行传递 v-bind:简写为: data() { return { title:'Hello', } }, // 子组件 test.vue 通过props接收 这是父组件传递过来的数据{{title}} export default { props:['title'],//接收 } 二、子组件向父组件传值

通过$emit触发事件进行传递参数

// 子组件 test.vue 传值num 子组件点击按钮触发给父组件传值 给父组件传值 export default { data() { return { num:'3', }; }, props:['title'],//接收 methods:{ sendNum(){this.$emit('myEven',this.num) //给父组件传值 }, } // index.vue 父组件接收num {{num}} export default { data() { return { num:0,//默认0 } }, methods: { getNum(num){ console.log(num)      this.num = num } }, } 三、兄弟组件之间通讯

a.创建组件a,b,引入index.vue, components注册

// index .vue 页面展示组件内容 import test from '../../components/test.vue' import testA from '@/components/a.vue' import testB from '@/components/b.vue' export default { components:{ test, "test-a":testA, "test-b":testB, }, }

b.通过uni.$on注册一个全局监听事件,通过uni.$emit触发全局监听事件

//a组件 a.vue 修改b组件数据 export default { methods:{ addNum(){ uni.$emit('changeNum',10) //触发全局变量自定义事件changeNum,该函数为b组件内修改b组件内容的方法         }       }   }

 

//b组件 b.vue a组件更改该组件内容 数据{{num}} export default { data() { return { num:0, }; }, created(){ //创建全局监听自定义事件 改变内容 uni.$on('changeNum',num=>{ this.num+=num }) }, }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3