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 相关文章推荐
JavaScript的9个陷阱及评点分析
May 16 Javascript
js电信网通双线自动选择技巧
Nov 18 Javascript
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
Dec 31 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
jQuery图片轮播插件——前端开发必看
May 31 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
Aug 24 Javascript
jQuery上传多张图片带进度条样式(DEMO)
Mar 02 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
layUI实现列表查询功能
Jul 27 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自定义函数之递归删除文件及目录
2010/08/08 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
JavaScript 指导方针
2007/04/05 Javascript
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
jQuery中append()方法用法实例
2015/01/08 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python图算法实例分析
2016/08/13 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
给校长的建议书400字
2014/05/15 职场文书
法人身份证明书
2014/10/08 职场文书
本溪水洞导游词
2015/02/11 职场文书
二十年同学聚会感言
2015/07/30 职场文书
人民调解协议书
2016/03/21 职场文书
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技