Vue.js实战之组件之间的数据传递


Posted in Javascript onApril 01, 2017

前言

Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据。必须使用特定的方法才能实现组件之间的数据传递。

首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,components 文件夹下都是子组件。

Vue.js实战之组件之间的数据传递

一、父组件向子组件传递数据

在 Vue 中,可以使用 props 向子组件传递数据。

子组件部分:

Vue.js实战之组件之间的数据传递

这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量。

如果需要从父组件获取 logo 的值,就需要使用 props: ['logo']

Vue.js实战之组件之间的数据传递

父组件部分:

Vue.js实战之组件之间的数据传递

在调用组件的时候,使用 v-bind 将 logo 的值绑定为 App.vue 中定义的变量 logoMsg

Vue.js实战之组件之间的数据传递

然后就能将App.vue中 logoMsg 的值传给 header.vue 了:

Vue.js实战之组件之间的数据传递

二、子组件向父组件传递数据

子组件主要通过事件传递数据给父组件

子组件部分:

Vue.js实战之组件之间的数据传递 

这是 login.vue 的 HTML 部分,当<input>的值发生变化的时候,将 username 传递给 App.vue

首先声明一个了方法 setUser,用 change 事件来调用 setUser

Vue.js实战之组件之间的数据传递

在 setUser 中,使用了 $emit 来遍历 transferUser 事件,并返回 this.username

其中 transferUser 是一个自定义的事件,功能类似于一个中转,this.username 将通过这个事件传递给父组件

父组件部分:

Vue.js实战之组件之间的数据传递

在父组件 App.vue 中,声明了一个方法 getUser,用 transferUser 事件调用 getUser 方法,获取到从子组件传递过来的参数 username

Vue.js实战之组件之间的数据传递 

getUser 方法中的参数 msg 就是从子组件传递过来的参数 username

Vue.js实战之组件之间的数据传递

三、子组件向子组件传递数据

Vue 没有直接子对子传参的方法,建议将需要传递数据的子组件,都合并为一个组件。如果一定需要子对子传参,可以先从传到父组件,再传到子组件。

为了便于开发,Vue 推出了一个状态管理工具Vuex,可以很方便实现组件之间的参数传递

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
js编写trim()函数及正则表达式的运用
Oct 24 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
JavaScript获取当前网页最后修改时间的方法
Apr 03 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
Bootstrap实现弹性搜索框
Jul 11 Javascript
javascript中的 object 和 function小结
Aug 14 Javascript
深入浅析JS Function()构造函数
Aug 22 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
Jan 27 jQuery
ES6新特性之解构、参数、模块和记号用法示例
Apr 01 #Javascript
jQuery UI Grid 模态框中的表格实例代码
Apr 01 #jQuery
前端自动化开发之Node.js的环境搭建教程
Apr 01 #Javascript
ES6新特性之数组、Math和扩展操作符用法示例
Apr 01 #Javascript
手机端转换rem适应
Apr 01 #Javascript
ES6新特性之变量和字符串用法示例
Apr 01 #Javascript
ES5学习教程之Array对象
Apr 01 #Javascript
You might like
PHP的SQL注入过程分析
2012/01/06 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
Python 数据结构之队列的实现
2017/01/22 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
python读取xml文件方法解析
2020/08/04 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
公司领导推荐信
2013/11/12 职场文书
教师求职自荐信
2014/03/09 职场文书
知识竞赛主持词
2014/03/26 职场文书
临床医学专业求职信
2014/08/08 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书