≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > vue.js

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

人气:352 时间:2019-04-07

这篇文章主要为大家详细介绍了Vue2.0基于vue-cli+webpack父子组件通信(实例讲解),具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

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

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

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

【q1010.com温馨提示:图片暂缺】

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父子组件通信(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持四海网。

本文来自:http://www.q1010.com/184/3795-0.html

注:关于Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:vue.js

您可能感兴趣的文章

  • Vue的百度地图插件尝试使用
  • Vue 多层组件嵌套二种实现方式(测试实例)
  • Vue仿手机qq的实例代码(demo)
  • vue.js移动端app之上拉加载以及下拉刷新实战
  • vue引入jq插件的实例讲解
  • vue使用drag与drop实现拖拽的示例代码
  • vue父子组件的嵌套的示例代码
  • 分析Vue双向数据绑定原理解析
  • Vuejs 页面的区域化与组件封装的实现
  • vue params、query传参使用分析
上一篇:分析VueRouter进阶之导航钩子和路由元信息
下一篇:vue params、query传参使用分析
热门文章
  • Vue 报错TypeError: this.$set is not a function 的解决方法
  • vue实现动态添加数据滚动条自动滚动到底部的示例代码
  • vue项目设置scrollTop不起作用(总结)
  • vue项目中使用vue-i18n报错的解决方法
  • iview实现select tree树形下拉框的示例代码
  • 分析关于element级联选择器数据回显问题
  • vue项目打包后打开页面空白解决办法
  • 解决element ui select下拉框不回显数据问题的解决
  • element-ui table span-method(行合并)的实现代码
  • element-ui 设置菜单栏展开的方法
  • 最新文章
    • 理解vue ssr原理并自己搭建简单的ssr框架
    • vue favicon设置以及动态修改favicon的方法
    • vue-router启用history模式下的开发及非根目录部署方法
    • 从零开始在NPM上发布一个Vue组件的方法步骤
    • Element input树型下拉框的实现代码
    • Vue 报错TypeError: this.$set is not a function 的解决方法
    • Vue.js组件高级特性实例分析
    • 浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
    • 分析Vue.js自定义tipOnce指令用法实例
    • 浅谈vuex actions和mutation的异曲同工

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。