Vue2的组件props通信方式

在Vue2中组件的props的数据流动改为了只能单向流动,即只能由组件外(调用组件方)通过组件的DOM属性attribute传递props给组件内,组件内只能被动接收组件外传递过来的数据,并且在组件内,不能修改由外层传来的props数据。

比如要实现一个这样的开关

1.父组件通过props将初始的值传到子组件

2.子组件接收到初始值后,创建一个副本数据(由于从父组件直接获取到的props不能更改,data中的数据可以更改,这才创建一个可以更改数据的副本)

 props: [
'checkType' // 当前checkBox的状态,选中还是未选中
],
data () {
return {
myCheckType: this.checkType
}
}

3.子组件创建一个监听,在从父组件传来的值改变的时候,重新给副本数据赋值

 watch: {
checkType (val) {
this.myCheckType = val
}
}

4.子组件绑定改变事件,在触发改变的时候,改变副本数据的值,并将改变后的值$emit给父组件

<img src="../../assets/images/icon_checkbox1_32^.png" @click="toggle">
 methods: {
toggle (status) {
this.myCheckType = !this.myCheckType
this.$emit('changeType', this.myCheckType)
const event = window.event
event.stopPropagation()
}
}

5.父组件中监听子组件$emit的事件,将子组件传递的值重新赋值给data

<form_list :checkType="test.checkType" @changeType="toggle"></form_list>
 data () {
return {
test: {
checkType: false
}
}
},
methods: {
toggle (data) { // data--子组件传递的值
this.test.checkType = data
}
}

6.在父组件中实现了值得改变,传递到子组件中

7.如果在循环中使用组件,子组件需要接收循环的索引;在子组件向父组件$emit的时候,数据中同时包括索引。

8.父组件能够借助索引将子组件中要传递的数据插入该索引所在的数据集

本文参考如何在Vue2中实现组件props双向绑定

最新文章

  1. .NET学习记录2
  2. /etc/rc.d/与/etc/rc.d/init.d的关系
  3. 算法库:jpeglib和pnglib安装配置
  4. OSGi运行环境下java反序列化问题的解决方式
  5. Database事件研究
  6. JeeSite试用
  7. [转] linux下的c/c++调试器gdb
  8. struts2笔记04-XxxAware接口
  9. error C3861: “gets”: 找不到标识符
  10. C#中利用双缓冲技术解决绘图闪屏问题。
  11. iphone手机用wireshark抓包
  12. UIScrollView的布局
  13. LCT维护子树信息(BZOJ4530:[BJOI2014]大融合)
  14. Swift基础之UIPickerView和小animate的使用
  15. 04 前端篇(JQuery)
  16. GCC编译器原理(三)------编译原理三:编译过程(3)---编译之汇编以及静态链接【2】
  17. Java 反射 调用私有构造方法
  18. backbone的对象继承实现
  19. Qt5设置应用程序图标
  20. 《C++反汇编与逆向分析技术揭秘》之11——虚函数

热门文章

  1. linux禁用icmp(ping )
  2. Linux运维利器之ClusterShell
  3. 前端 vue单页面应用刷新网页后vuex的state数据丢失的解决方案(转载)
  4. 《JAVA 程序员面试宝典(第四版)》读书笔记之前言
  5. django_4:数据库0——配置数据库
  6. 实现websocket 主动消息推送,用laravel+Swoole
  7. 64位手机部署centos
  8. Android ConstraintLayout
  9. 成员函数指针,动态绑定(vc平台)
  10. Elasticsearch从入门到放弃:文档CRUD要牢记