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 相关文章推荐
JS URL传中文参数引发的乱码问题
Sep 02 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
May 22 Javascript
JS中把字符转成ASCII值的函数示例代码
Nov 21 Javascript
jQuery $命名冲突解决方案汇总
Nov 13 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
Feb 14 Javascript
Node.js模块封装及使用方法
Mar 06 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
Aug 11 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
深入理解ES6学习笔记之块级作用域绑定
Aug 19 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
对于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 pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
python制作抖音代码舞
2019/04/07 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
python super用法及原理详解
2020/01/20 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
公司人力资源的自我评价
2014/01/02 职场文书
优秀求职信范文分享
2014/01/26 职场文书
高考励志标语
2014/06/05 职场文书
门店业绩提升方案
2014/06/08 职场文书
一般党员对照检查材料
2014/09/24 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python