组件监听,触发,广播、派生总结

1、组件可用this.$on('') 绑定监听

2、也可以events:内设置监听
3、触发本组件监听用this.$emit('')
4、子组件触发v-on绑定的事件用$emit('') 传递的事件是methods内的
5、$dispatch('event',) 触发本组件监听事件,并向其父链冒泡触发,可return true 一直向上
6、$broadcast('event',) 广播事件,通知当前组件的全部后代,return true 可一直下去
7、$off('event',fn) 删除监听事件
8、$parent.name/fn 子组件访问父组件属性或方法
9、$children[0].name/fn 父组件访问子组件属性或方法

10、可用组件定义v-ref 名称 父组件内就可用$refs.refname.name/fn 访问子组件属性或方法


组件传递值

给组件传递值,子组件需要配置props对象或数组,来定义参数名,参数类型,参数默认值等

props:[]  {}

它有两种写法一个是数组,一个是对象

数组:只能定义属性名,如果只是需要静态参数,数组就可以

因为静态传递过来的值就是="" 双引号内的值直接传递,不能用{{}} 

传递的类型就是字符串和数字,数组呢收到的也是字符串

对象:{name:{type:String,default:'star}}

常用于绑定传递

需要注意一点:组件初始化时接到的值是父组件data里设置的默认值,如ready内获取的就是默认值。

如果父用ajax修改了值,这时会同步到子组件

vue 传递类型:

v-bind:xx="name"   默认的单向绑定,父修改后会同步到子,子不可同步到父

v-bind:xx.sync="name" 双向绑定,父子修改都会同步

v-bind:xx.once=“name" 单次绑定,值传递一次,这后不管了,也不会同步




Logo

前往低代码交流专区

更多推荐