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 相关文章推荐
js几个验证函数代码
Mar 25 Javascript
如何将JS的变量值传递给ASP变量
Dec 10 Javascript
纯Javascript实现Windows 8 Metro风格实现
Oct 15 Javascript
node.js中的fs.chmod方法使用说明
Dec 18 Javascript
angular.foreach 循环方法使用指南
Jan 06 Javascript
jQuery简单实现图片预加载
Apr 20 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
不得不知的ES6小技巧
Jul 28 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
JavaScript回调函数callback用法解析
Jan 14 Javascript
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之第十天
2006/10/09 PHP
PHP通用检测函数集合
2006/11/25 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
js简单时间比较的方法
2016/08/02 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
Python统计单词出现的次数
2018/04/04 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
六查六看剖析材料
2014/02/15 职场文书
保护环境建议书400字
2014/05/13 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
小学教师年度个人总结
2015/02/05 职场文书
大学生实习推荐信
2015/03/27 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL