Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)


Posted in Javascript onSeptember 14, 2017

在git命令行下,执行以下命令完成环境的搭建:

1,npm install --global vue-cli 安装vue命令行工具

2,vue init webpack vue-demo 使用vue命令生成一个webpack项目,项目名称为vue-demo

Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)

3,cd vue-demo 切入项目

4,npm install安装package.json中的所有依赖包

5,npm run dev运行项目

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

然后删除默认的Hello.vue组件,把App.vue整理成以下样子:

<template>
 <div id="app">
 这是一个空的app
 </div>
</template>

<script>
 export default {
 name : 'app'
 }
</script>

<style>

</style>

把router下面index.js文件修改如下:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
 routes: [
 {
  path: '/',
 }
 ]
})

1、在components目录下创建一个子组件Child.vue

代码如下:

<template>
 <div>
  <h3>这是子组件</h3>
  <p>{{content}}</p>
 </div>
</template>
<script>
export default {
 props : ['content']
}
</script>

2、把App.vue的代码修改如下:

<template>
 <div id="app">
 <child :content="msg"></child>
 </div>
</template>

<script>
 import child from './components/Child.vue';
 export default {
 name : 'app',
 data(){
  return {
  'msg' : '这是来自父组件的问候'
  }
 },
 components : {
  child
 }
 }
</script>

这样就完成了父组件通过props属性向子组件传递数据

也可以用v-bind绑定属性

<template>
 <div id="app">
 <child :content="msg"></child>
 <child v-bind:content="msg"></child>
 </div>
</template>

小结:

子组件在props中创建一个属性,用以接收父组件传过来的值

父组件中调用子组件

在子组件标签中绑定子组件props中创建的属性

把需要传给子组件的值赋给该属性,如我们上文中父组件的msg

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

1,把Child.vue修改如下:

<template>
 <div>
  <h3>这是子组件</h3>
  <p>{{content}}</p>
  <p>
   <input type="button" value="告诉父王一个消息" v-on:click="send">
  </p>
 </div>
</template>
<script>
export default {
 props : ['content'],
 methods : {
  send(){
   this.$emit( 'ParentRecEv', "父王,孩儿正在跟ghostwu学习vue2.0" )
  }
 }
}
</script>

子组件通过$emit发送一个自定义的事件ParentRecEv, 后面参数是内容

2,App.vue修改如下

<template>
 <div id="app">
 <child :content="msg"></child>
 <child v-bind:content="msg" v-on:ParentRecEv="showMsg"></child>
 <p>{{data}}</p>
 </div>
</template>

<script>
 import child from './components/Child.vue';
 export default {
 name : 'app',
 data(){
  return {
  'msg' : '这是来自父组件的问候',
  data : ''
  }
 },
 methods : {
  showMsg( msg ){
  this.data = msg;
  }
 },
 components : {
  child
 }
 }
</script>

在第二个子组件监听事件ParentRecEv,当子组件点击按钮就会触发这个自定义事件,然后触发showMsg函数,就能收到子组件传递的数据,没有绑定自定义事件是不能收到子组件发送的信息的.

小结:

子组件中通过$emit触发一个自定义事件

将需要传的值作为$emit的第二个参数,该值会被父组件的方法接收到

在父组件中调用子组件并在子组件标签上绑定发送的自定义事件

他们的共同点就是有桥梁,子向父的桥梁是自定义事件$emit,父向子的桥梁是props中的属性. 这就是他们之间传递数据的关键

以上这篇Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
asp.net 30分钟掌握无刷新 Repeater
Sep 16 Javascript
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
jquery动态添加option示例
Dec 30 Javascript
js转化毫秒为时间格式代码
Apr 10 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
Jun 24 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 Javascript
原生js实现新闻列表展开/收起全文功能
Jan 20 Javascript
Angular.js基础学习之初始化
Mar 10 Javascript
基于JavaScript实现无限加载瀑布流
Jul 21 Javascript
浅谈vuex 闲置状态重置方案
Jan 04 Javascript
vue 自定义组件添加原生事件
Apr 21 Vue.js
对于js垃圾回收机制的理解
Sep 14 #Javascript
使用SVG基本操作API的实例讲解
Sep 14 #Javascript
JSON 数据格式详解
Sep 13 #Javascript
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 #Javascript
详解动画插件wow.js的使用方法
Sep 13 #Javascript
JS库之Highlight.js的用法详解
Sep 13 #Javascript
详解wow.js中各种特效对应的类名
Sep 13 #Javascript
You might like
php设计模式 Composite (组合模式)
2011/06/26 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
4s客服专员岗位职责
2013/12/01 职场文书
研究生毕业鉴定
2014/01/29 职场文书
公司晚会策划方案
2014/05/17 职场文书
法制宣传标语集锦
2014/06/25 职场文书
查摆问题整改措施
2014/10/24 职场文书
盲山观后感
2015/06/11 职场文书
大学体育课感想
2015/08/10 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis