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 相关文章推荐
jQuery回车实现登录简单实现
Aug 20 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
Sep 23 Javascript
基于jQuery实现复选框是否选中进行答题提示
Dec 10 Javascript
关于vuex的学习实践笔记
Apr 05 Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
Aug 24 Javascript
详解webpack模块加载器兼打包工具
Sep 11 Javascript
基于canvasJS在PHP中制作动态图表
May 30 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
Aug 22 Javascript
详解ES6 中的Object.assign()的用法实例代码
Jan 11 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 mssql 日期出现中文字符的解决方法
2009/03/10 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
php中使用GD库做验证码
2016/03/31 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
js导出txt示例代码
2014/01/14 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
基于Python List的赋值方法
2018/06/23 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
百丽国际旗下购物网站:优购
2017/02/28 全球购物
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
金智子午JAVA面试题
2015/09/04 面试题
教师自我反思材料
2014/02/14 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
大学生求职计划书
2014/04/30 职场文书
小学教师培训方案
2014/06/09 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript