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

2020-06-13 10:45:19易采站长站整理

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

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

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

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>