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 ...
随机推荐
- 小白进阶之路-python数据类型
1.数据类型:变量值是我们存储的数据,所以数据类型值得就是变量的不同种类 2.数据分类型的原因:变量值是用来保存现实世界的中的状态的,呢么针对不同的状态就应该用不同类型上午数据去表示 (1)整型int ...
- 我的面试标准:1.能干活;2.Java基础好;3.熟悉分布式框架
本文授权转载自:https://www.cnblogs.com/JavaArchitect/p/10011253.html . awesome-java:https://github.com/Snai ...
- 【题解】SDOI2015序列统计
[题解]SDOI2015序列统计 来自永不AFO的YYB的推荐 这里是乘积,比较麻烦,不过由于给定的序列膜数是个小质数,所以可以\(O(m^2\log m)\)找原跟(实际上不需要这么多). 乘积有点 ...
- $Poj1952\ $洛谷$1687\ Buy\ Low,Buy\ Lower$ 线性$DP+$方案计数
Luogu Description 求一个长度为n的序列a的最长下降子序列的长度,以及这个长度的子序列种数,注意相同的几个子序列只能算作一个子序列. n<=5000,a[i]不超过long范围 ...
- vps批量管理,服务器批量管理,3389批量管理工具
注册的第一天,把我的工具弄上来.如果有一个软件,如果你有vps虚拟机,服务器,3389中的任意一种两种或全部,而且还是批量的,需要管理.那么,你可能会想找个软件来管理吧,毕竟,一个人忙不过来管理这么多 ...
- 啊哈!C语言课后参考答案下
最近看到一本好评量很高的的C语言入门书,课本真的很好,入门的话.专业性没有那么强,但入门足够了!!好评!看着看着就想把这本书的题课后习题都写出来,最后就有了这个小结.可能有的不是最好,不那么专业,但主 ...
- spring boot事务管理
spring boot集成事务十分的简单,只需要在启动类上面增加@EnableTransactionManagement注解,然后在需要实现事务的方法上添加@Transactional注解就可以了.下 ...
- Java防锁屏小程序
为防止系统桌面自动锁屏,只需打成jar包,写个批处理程序start.bat,双击执行保持dos窗口执行即可,无其他影响. 程序设计为每30秒动一次鼠标,可根据需要调整. 附代码: package ma ...
- Java标签学习
今天早上看Java编程思想第四章控制执行流程,本来很简单的一些东西,但是突然看到了goto发现自己以前还真的没怎么用过,不过Java中对goto作为保留关键字,而是提供了一个叫标签的东西,我们一起来看 ...
- 从网上下载DLL
1,微软官网 2:https://www.zhaodll.com/ 3:http://www.dllzj.com/