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 相关文章推荐
prototype class详解
Sep 07 Javascript
javaScript parseInt字符转化为数字函数使用小结
Nov 05 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
一个挺有意思的Javascript小问题说明
Sep 26 Javascript
window.open不被拦截的实现代码
Aug 22 Javascript
动态加载script文件的两种方法
Aug 15 Javascript
javascript中的window.location.search方法简介
Sep 02 Javascript
用JS实现3D球状标签云示例代码
Dec 01 Javascript
浅谈javascript获取元素transform参数
Jul 24 Javascript
react-native fetch的具体使用方法
Nov 01 Javascript
Vuex中的State使用介绍
Jan 19 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 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
html中select语句读取mysql表中内容
2006/10/09 PHP
php 归并排序 数组交集
2011/05/10 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python中super函数的用法
2017/11/17 Python
python实现查找所有程序的安装信息
2020/02/18 Python
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
触电现场处置方案
2014/05/14 职场文书
关于安全的标语
2014/06/10 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
爱心募捐感谢信
2015/01/22 职场文书
二十年同学聚会感言
2015/07/30 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
详解MindSpore自定义模型损失函数
2021/06/30 Python
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
JavaScript组合继承详解
2021/11/07 Javascript
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
Redis入门基础常用操作命令整理
2022/06/01 Redis
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python