vue单页开发父子组件传值思路详解


Posted in Javascript onMay 18, 2018

vue单页开发时经常需要父子组件之间传值,自己用过但是不是很熟练,这里我抽空整理了一下思路,写写自己的总结。

GitHub地址:https://github.com/leileibrother/wechat-vue

文件目录如下图,example.vue是父组件,exampleChild.vue是子组件。

vue单页开发父子组件传值思路详解

父组件引入子组件,父组件html的代码如下:

<template> 
 <div> 
  <h3>这是父组件</h3> 
  <p style="margin: 20px 0;text-align: center;"> 
   <span>子组件传过来的值是 “{{childValue}}”</span> 
  </p> 
  <example-child v-bind:message="parentMsg" @getChildValue="getValue"></example-child> 
 </div> 
</template> 
<script> 
 import exampleChild from './examplechild.vue'; 
 export default { 
  name: "example.vue", 
  components: { 
   exampleChild 
  }, 
  data(){ 
   return { 
    parentMsg:'hello', 
    childValue:'' 
   } 
  }, 
  mounted(){ 
  }, 
  methods: { 
   getValue:function (val) { 
    this.childValue = val; 
   } 
  } 
 } 
</script> 
<style scoped> 
</style>

子组件代码如下:

<template> 
 <div> 
  <p style="margin: 20px 0;text-align: center;">我是子组件,父组件穿传过来的值是{{message}}</p> 
  <p style="margin: 20px 0;text-align: center;"> 
   <button @click="send">点击向父组件传值</button> 
  </p> 
 </div> 
</template> 
<script> 
 export default { 
  name: "exampleChild.vue", 
  props:['message'], 
  data(){ 
   return { 
   } 
  }, 
  mounted(){ 
  }, 
  methods: { 
   send:function () { 
    this.$emit('getChildValue','你好父组件!') 
   } 
  } 
 } 
</script> 
<style scoped> 
</style>

1,父组件向子组件传值。

在父组件中使用v-bind来绑定数据传给子组件,如我写的v-bind:message="parentMsg",把message字段传给子组件,

vue单页开发父子组件传值思路详解

在子组件中使用props接收值,如props:['message'],接收父组件传过来的message字段,使用{{message}}就是可以使用父组件传过来的值了。

vue单页开发父子组件传值思路详解

2,子组件向父组件传值。

子向父传值需要一个“中转站”,如我写的getChildValue,命名随便写。

在子组件中使用$emit()来向父组件传值。第一个参数就是这个“中转站”,后面的参数是要传的值,可以是多个。

vue单页开发父子组件传值思路详解

在父组件中如下,也需要这个中转站来接收值

vue单页开发父子组件传值思路详解

getValue是接收子组件值的函数,参数val就是子组件传过来的值,这样就可以接收到子组件传过来的值了。

vue单页开发父子组件传值思路详解

总结

以上所述是小编给大家介绍的vue单页开发父子组件传值思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript是否可实现多线程  深入理解JavaScript定时机制
Dec 22 Javascript
第一个JavaScript入门基础 document.write输出
Feb 22 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
获取中文字符串的实际长度代码
Jun 05 Javascript
window.location的重写及判断location是否被重写
Sep 04 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
Vue中 key keep-alive的实现原理
Sep 18 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
Apr 10 Javascript
Node.js Buffer用法解读
May 18 #Javascript
从零开始搭建webpack+react开发环境的详细步骤
May 18 #Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
May 18 #Javascript
webpack4 css打包压缩问题的解决
May 18 #Javascript
微信小程序实现长按删除图片的示例
May 18 #Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
May 18 #Javascript
Vue数据双向绑定原理及简单实现方法
May 18 #Javascript
You might like
coreseek 搜索英文的问题详解
2013/06/08 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
javascript 写类方式之二
2009/07/05 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
js代码实现轮播图
2020/05/04 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
使用Python的turtle模块画图的方法
2017/11/15 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
python 重命名轴索引的方法
2018/11/10 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
python deque模块简单使用代码实例
2020/03/12 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
python实现批处理文件
2020/07/28 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
对标管理实施方案
2014/03/12 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
绘画专业自荐信
2014/07/04 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书