什么是父子组件?

组件中引入组件,被引入的组件就是子组件。例如在 Hello.vue 组件中引入 Header.vue 组件,那么 Hello.vue 就是父组件,Header.vue就是子组件。

一、父组件向子组件传值

Hello.vue

<template>
<div id="Header">
{{msg}}
<!-- 调用自组件传递title 和 msg -->
<v-header :title="title" :msg="msg"></v-header>
</div>
</template>
<script>
import Header from './Header.vue';
export default {
name: 'Header',
data () {
return {
msg: 'Hello模块',
title:'我是Hello父组件里面的title'
}
},
methods:{
},
components:{
'v-header':Header
}
}
</script>

子组件:header.vue 中使用 props 来进行接受参数:

<template>
<div id="Header">
<p>我是一个头部组件----{{title}}-----{{msg}}</p>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {}
},
props:['title','msg']
}
</script>

二、父组件向子组件传递方法

Hello.vue

<template>
<div id="Header">
{{msg}}
<!-- 调用自组件传递 run 方法(传递不带括号) -->
<v-header :title="title" :msg="msg" :run='run'></v-header>
</div>
</template>
<script>
import Header from './Header.vue';
export default {
name: 'Header',
data () {
return {
msg: 'Hello模块',
title:'我是Hello父组件里面的title'
}
},
methods:{
run(){
alert('我是Hello组件里面的hello方法');
}
},
components:{
'v-header':Header
}
}
</script>

Header.vue 同样还是用 props 来进行接受:

<template>
<div id="Header">
<p>我是一个头部组件----{{title}}-----{{msg}}</p>
<input type="button" value="调用父组件的方法" @click="run()">
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {}
},
props:['title','msg','run'] // 接受run 方法
}
</script>

三、父组件向子组件传递自己(this传递的就是自己)

<template>
<div id="Header">
{{msg}}
<!-- 调用自组件传递 run 方法(传递不带括号) 用 this 来传递自己 -->
<v-header :title="title" :msg="msg" :run='run' :hello="this"></v-header>
</div>
</template>
<script>
import Header from './Header.vue';
export default {
name: 'Header',
data () {
return {
msg: 'Hello模块',
title:'我是Hello父组件里面的title'
}
},
methods:{
run(){
alert('我是Hello组件里面的run方法');
}
},
components:{
'v-header':Header
}
}
</script>

Header.vue组件的接受 hello

<template>
<div id="Header">
<p>我是一个头部组件----{{title}}-----{{msg}}</p>
<input type="button" value="调用父组件的方法" @click="run()">
<input type="button" value="调用父组件的属性和方法" @click="getParent()">
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {}
},
methods:{
getParent(){
alert(this.title);//这里调用的传递过来的title
alert(this.hello.title);//这里调用的就是传递过来的hello组件的方法
this.run();//调用传递过来的方法
this.hello.run();// 调用传递过来的hello组件的的run方法
}
},
props:['title','msg','run','hello'] // 接受 hello 组件
}
</script>

总结:

父组件给子组件传值

1、父组件调用子组件的时候,绑定动态属性

<v-header :title='title'></v-header>

<v-header :title='title' :msg='msg'>传递两个参数

2、子组件里面可以通过 props 来进行接收参数

注意:父组件给子组件传值的时候,尽量不要传递子组件里面已经有的参数。

vue--父子组件的传值的更多相关文章

  1. vue父子组件之间传值

    vue父子组件进行传值 vue中的父子组件,什么是父组件什么是子组件呢?就跟html标签一样,谁包裹着谁谁就是父组件,被包裹的元素就是子组件. 父组件向子组件传值 下面用的script引入的方式,那种 ...

  2. vue父子组件的传值总结

    久违的博客园我又回来了.此篇文章写得是vue父子组件的传值,虽然网上已经有很多了.写此文章的目的就是记录下个人学习的一部分.接下来我们就进入主题吧! 在开发vue项目中,父子组件的传值是避免不掉的. ...

  3. Vue父子组件相互传值及调用方法的方案

    Vue父子组件相互传值及调用方法的方案 一.调用方法: 1.父组件调用子组件方法: 2.子组件调用父组件方法: 参考:https://www.cnblogs.com/jin-zhe/p/9523782 ...

  4. vue 父子组件互相传值容易出现的报错

    对于父子组件之间的互相传值,报错如下: [Vue warn]: Avoid mutating a prop directly since the value will be overwritten w ...

  5. vue——父子组件间传值

    (1)父组件给子组件传值(商品详情页): 根据订单类型,判断显示立即购买/立即拼单: 通过props来传递参数 父组件(商品详情页) 父组件调用子组件,在子组件的标签中,通过:数据名称=”数据”的形式 ...

  6. vue 父子组件相互传值

    子传父 逻辑: 单击子组件的按钮 ,触发它的单击事件   通过 $emit 触发父级自定义事件 并传一个值给父级 <div id="id"> <h3>儿子 ...

  7. VUE父子组件相互传值

    passer.vue中代码 首先在文件中引入组件 import canvasDraw from '@/components/CanvasDraw/canvasDraw' 局部注册组件:componen ...

  8. vue父子组件通信传值

    父组件 -> 子组件 通过props来进行通信 父组件代码: <Children :dataName = "dataContent" /> //dataName: ...

  9. vue父子组件相互传值的实例

    当子组件需要向父组件传递数据时,就要用到自定义事件 子组件用 $emit()来触发事件,父组件用$on()来监昕子组件的事件 父组件也可以直接在子组件的自定义标签上使用 v-on 来监昕子组件触发的自 ...

  10. vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值。

    vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值. vue 父组件与子组件相互通信 一.父组件给子组件传值 props 实现父组件向子组件传值. 1父组件里: ...

随机推荐

  1. Ubuntu下PHP动态编译出现Cannot find autoconf的解决方法

    执行phpize时出现Cannot find autoconf 错误 Ubuntu下解决方法 sudo apt-get install autoconf

  2. Android开发学习笔记-自定义控件的属性

    若想让自定义控件变得更加方便灵活,则就需要对控件进行定义属性,使其用起来更方便. 下面是自定义控件属性的方法 1.添加attrs.xml,内容格式样式可以参考sdk\platforms\android ...

  3. 使用jstl+el表达式遇到的几个问题

    1.使用jstl访问Map<Integer,String>中的内容时总取不到? el表达式的一个bug,在解析数字的时候,会自动将数字转换成Long类型. 我的解决办法是,Map的key改 ...

  4. Hessian资料

    introduction http://www.cnblogs.com/hzmark/archive/2012/11/27/Hessian.html 超时时间设置 http://www.tuicool ...

  5. C#操作共享文件夹

    public class NetFileShare { public NetFileShare() { } public static bool connectState(string path) { ...

  6. linux环境中安装iotop命令,解决-bash: iotop: command not found问题

    需求描述: 今天在测试环境中,准备查看mysql各个线程占用的io的情况,准备使用iotop命令来查看,发现没有这个命令 [root@testvm Packages]# iotop -bash: io ...

  7. MAP参数估计

    (学习这部分内容大约需要40分钟) 摘要 在贝叶斯参数估计中, 除了先验是特别选定的情况下, 通常要积分掉所有模型参数是没有解析解的. 在这种情况下, 最大后验(maximum a posterior ...

  8. 变分推断(Variational Inference)

    (学习这部分内容大约需要花费1.1小时) 摘要 在我们感兴趣的大多数概率模型中, 计算后验边际或准确计算归一化常数都是很困难的. 变分推断(variational inference)是一个近似计算这 ...

  9. 登陆时验证码的制作(asp.net)

    登陆时验证码的制作(asp.net) 1.显示样式: 2.新建一个页,Default2.aspx 3.在Page_load事件拷入如下代码 stringtmp = RndNum(4); HttpCoo ...

  10. SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

     3 非注解的处理器映射器和适配器 3.1 非注解的处理器映射器 3.1.1 HandlerMapping处理器映射器 HandlerMapping 负责根据request请求找到对应的Handler ...