什么是父子组件?

组件中引入组件,被引入的组件就是子组件。例如在 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. MYSQL列中的数据以逗号隔开,如何查询

    FROM `task_detatils` WHERE FIND_IN_SET( '1', responsible_user) 将含有1的responsible_user列数据全部搜索出来

  2. SqlServer当前月份时间

    SqlServer当前月份时间 SELECT -DAY(getdate()+-DAY(getdate()))

  3. NetBpm 数据库(9)

    原文:http://blog.csdn.net/adicovofer/article/details/1718592 关注NetBpm也很久了,可是一直没有静下心来研究,为了生活的琐事,太过浮躁……今 ...

  4. 如何下载腾讯视频的视频转为MP4常用格式视频

    想起之前看过中央一台的<我要上春晚>中有个节目叫<迎春花>,两个女孩表现特别好,想下载这个视频,然后发现CCTV提供的客户端不好用,腾讯视频有,但是腾讯视频下载下来是qlv格式 ...

  5. openssl & openssh

    什么是OpenSSL众多的密码算法.公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些算法和标准的想法.果真如此,在对你表示敬佩的同时,还是忍不住提醒你:这是一个令人望而生畏的过 ...

  6. iOS in-app purchase详解

    in-app purchase教程: http://www.appcoda.com/in-app-purchase-tutorial/ 3.后台服务器验证收据的正确性 IOS 内支付有两种模式: 1) ...

  7. [C] scanf - 格式输入函数

    scanf 函数称为格式输入函数,即把用户键盘输入的内容保存到指定的变量中. scanf 函数签名 scanf("格式控制字符串", 变量地址列表) scanf 函数是一个标准库函 ...

  8. C++ template —— 模板中的名称(三)

    第9章 模板中的名称------------------------------------------------------------------------------------------ ...

  9. Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.1.RELEASE from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempt

    第一次用 Spring Starter Project 创建一个Spring应用时,POM 文件报错: Project build error: Non-resolvable parent POM f ...

  10. PHP关于=>和->以及::的用法

    1.=>的用法 在php中数组默认键名是整数,也可以自己定义任意字符键名(最好是有实际意义),如: $css=array('style'=>'0',‘color’=>‘green‘) ...