vue-父组件向子组件传值
一、父组件向子组件传值
其实该问题是说子组件如何访问父组件的属性和方法?那么根据对组件化的理解,无非就是要解决两个问题:
1、父组件如何将值传给子组件?
2、子组件如何获取父组件传递过来的值?
解读vue示例代码:
1、父组件向子组件传值是通过“属性绑定”的形式实现的(第2行)
2、子组件默认是无法访问到父组件中的数据和方法的(如果去掉19行,18行是取不到数据的,浏览器还会报错)
过程分析:
1、首先,第2行是引用子组件对象模板,通过属性绑定的方式将父组件的msg绑定给自定义的属性名称parentmsg,这一步已经把父 组件的值传给了子组件;
2、看代码vue中是通过在子组件中定义props属性,并将绑定的属性名传进去就可以获取到父组件传过来的值。
关键字:属性绑定 、 props
注意:
1、子组件data里面的数据是子组件私有的,可读可写。
2、组建中props种的数据都是通过父组件传递过来的,可读不可写。
<div id='app'>
<com1 :parentmsg='msg'></com1>
</div> var vm = new Vue({
el:'#app',
data:{
msg: '这是父组件中的数据'
},
methods:{},
//定义子组件
components:{
com1:{
data(){
return {title:'子组件',content:'这是子组件内容'}
},
template:'<h1>这是子组件--{{parentmsg}}</h1>',
props:['parentmsg']
}
}
})
二、父组件向子组件传递方法
该问题可以理解为“子组件如何调用父组件的方法”,根据对父组件向子组件传值过程的理解,该过程还是分为两个步骤:
1、父组件如何将方法传给子组件?
2、子组件如何获取子组件传过来的方法?
解读vue示例代码:
1、父组件通过“事件绑定机制”将方法传给子组件。
2、子组件在methods属性中用this.$emit('func')获取父组件传递的方法。
过程分析:
1、首先在定义的vue对象实例中定义一个show方法(第32行),然后我们通过components属性将定义的子组件com2引用一下,在第2行以标签的形式加以引用,在标签里面用事件绑定机制将show绑定给func,此时已成功将父组件的show方法传递给了子组件com2;
2、我们需要触发并调用父组件传递过来的方法,在子组件com2的methods属性中定义了点击事件方法,点击的时候通过this.$emit('func',this,sonmsg)获取父组件的方法。
注意:
1、@func='show' 不是show(),表示将show()的引用直接给func,如果是show()表示将方法的结果给func,注意含义不一样。
2、this.$emit(),$emit是触发的意思,第一个参数是父组件传递的方法名,从第二个参数开始可以传递额外的参数。
<div id='app'>
<com2 @func='show'></com2>
</div> <template id='tem1'>
<div>
<h1>这是子组件</h1>
<input type="button" value="子组件的按钮,点击调用父组件传递过来的func方法" @click='myclick'>
</div>
</template> //定义一个字面量类型的组件模板对象
var com2 = {
tenplate:'#tem1',
data(){
return{
sonmsg:{name:'son',age:6}
}
},
methods:{
myclick(){
this.$emit('func’,this.sonmsg);
}
}
} var vm = new Vue({
el:'#app',
data:{
data_form_son: ''
},
methods:{
show(param){
console.log("调用父组件的show方法"+JSON.stringify(param));
this.data_form_son = JSON.stringify(param);
}
},
components:{
com2
}
})
三、子组件通过事件调用向父组件传值。
看代码22行,子组件调用父组件方法的时候将this.sonmsg传递,然后在33行在show方法里面传参,35行就可以获取值。(日后加以补充)
vue-父组件向子组件传值的更多相关文章
- Vue 组件&组件之间的通信 之 父组件向子组件传值
父组件向子组件传值:父组件通过属性向下传值的方式和子组件通信: 使用步骤: 定义组件:现有自定义组件com-a.com-b,com-a是com-b的父组件: 准备获取数据:com-b要获取父组件dat ...
- vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值。
vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值. vue 父组件与子组件相互通信 一.父组件给子组件传值 props 实现父组件向子组件传值. 1父组件里: ...
- vue 父组件给子组件传值 Vue父组件给子组件传方法 Vue父组件把整个实例传给子组件
Home.vue <template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> <v-header ...
- Vue中父组件向子组件传值
Vue中父组件向子组件传值 相关Html: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Vue 父组件向子组件传值,传方法,传父组件整体
父子组件传值 1.父组件调用子组件时绑定属性,例如-> :title="title" 2.子组件中在props中声明title:props:['title','msg'] 3 ...
- EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
前端方面,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是传统的js来进行开发,而EasyDSS使用的是webpack+vue来进行开发的,了解vue+webpack的 ...
- vue父组件调用子组件方法、父组件向子组件传值、子组件向父组件传值
一.父组件调用子组件方法 父组件代码 parent.vue <template> <div> <button @click="parentFun" ...
- VUe.js 父组件向子组件中传值及方法
父组件向子组件中传值 1. Vue实例可以看做是大的组件,那么在其内部定义的私有组件与这个实例之间就出现了父子组件的对应关系. 2. 父子组件在默认的情况下,子组件是无妨访问到父组件中的数据的,所以 ...
- Vue父组件向子组件传值
父组件向子组件传值 组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据 <script> // 创建 Vue 实例,得到 ViewModel var vm = ne ...
随机推荐
- $SP15637\ GNYR04H\ -\ Mr\ Youngs\ Picture\ Permutations$
传送门 Description 杨先生希望为他的班级拍照.学生将排成一行,每行不超过后面的行,并且行的左端对齐.例如,可以安排12名学生排列(从后到前)5,3,3和1名学生. X X X X X X ...
- JAVA8学习——从源码角度深入Stream流(学习过程)
从源代码深入Stream / 学习的时候,官方文档是最重要的. 及其重要的内容我们不仅要知道stream用,要知道为什么这么用,还要知道底层是怎么去实现的. --个人注释:从此看出,虽然新的jdk版本 ...
- JAVA字节码文件之常量池
一.常量池的内容 一个java类中定义的很多信息都是由常量池来维护和描述的,可以将常量池看作是class文件的资源仓库,比如java类中定义的方法与变量信息.常量池中主要存储两类常量:字面量(文本字符 ...
- 洛谷P2858 奶牛零食 题解 区间DP入门题
题目大意: 约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱.为此,约翰购置了 \(N(1 \le N \le 2000)\) 份美味的零食来卖给奶牛们.每天约翰售出一份零 ...
- 小小知识点(四十九)——SCMA
SCMA的实现基于两步: 1.实现码本资源到物理频域资源映射的映射矩阵(matrix mapping): 2.实现二进制比特流到码本映射的复数域星座图(complex domain constella ...
- Redis-NoSQL入门和概述(一)
NoSQL简史及定义 NoSQL 这个术语最早是在 1998 年被Carlo Strozzi命名在他的轻量的,开源的关系型数据库上的,但是该数据库没有提供标准的SQL接口:在2009 年再次被Eric ...
- linux中的ldd命令简介
转载自:http://blog.csdn.net/stpeace/article/details/47069215 在linux中, 有些命令是大家通用的, 比如ls, rm, mv, cp等等, 这 ...
- 关于Springboot找不到mapper.xml问题
今天在写springboot项目时报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),找 ...
- 为QLabel增加Clicked信号
QT为QLabel添加Click事件(如果我们使用组件,我们关心的是信号槽:如果我们自定义组件,我们关心的是事件) 其实就是改写了一个函数:mouseReleaseEvent,当在QLabel放开鼠标 ...
- Match3 Module For Game(THDN)
介绍 THDN的核心机制为Match3的利用,本文对Match3 Gameplay进行记录,并对其进行改良.THDN作为RogueLIke性质的游戏,玩家在随机生成的dungeon里进行探索并获 ...