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 ...
随机推荐
- 在nginx里面部署node.js本地服务器
我一个前端,为啥要搞服务器呢?因为公司就招了一个后端啊,后端忙不过来,就叫我这个萌新前端去搞后端的东西,我太难了. 直接进入正题吧,因为公司需求,要我在nginx服务器上面搭一个node.js服务器, ...
- 1047 编程团体赛 (20 分)C语言
编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...
- Spring中常见的设计模式——策略模式
策略模式(Strategy Pattern) 一.策略模式的应用场景 策略模式的应用场景如下: 系统中有很多类,而他们的区别仅仅在于行为不同. 一个系统需要动态的在集中算法中选择一种 二.用策略模式实 ...
- docker练习-容器和服务
使用定义容器 Dockerfile Dockerfile定义容器内环境中发生的事情.对网络接口和磁盘驱动器等资源的访问在此环境中进行虚拟化,该环境与系统的其他部分隔离,因此您需要将端口映射到外部世界, ...
- 一个.NET程序员 "2019" 跳槽3次的悲惨故事
2019年是值得深思的一年,在找工作上没有那么用心,导致碌碌无为,在这里我建议大家找工作的时候不要太着急...要不然会被逼疯的,一定不能被“工作”挑,一定要做到挑"工作".:那我就 ...
- OSS上传图片无法在线预览的解决方案
OSS上传图片无法在线预览的解决方案 最近在做的项目涉及到商品详情,由于前端用的flutter框架并且该详情为富文本,dart语言关于富文本的组件不是非常友好,当富文本中的图片无法在浏览器中直接预览的 ...
- kmp算法初步理解
123456789 abbdaxnds Next 01212 第三位看第二位b,第二位和第三位相同,都是b,所以第三位的next是第二位的next加1,即1+1=2 第四位看第三位b,第四位d与第 ...
- 轻量级开源小程序SDK发车啦
Magicodes.WxMiniProgram.Sdk 轻量级微信小程序SDK,支持.NET Framework以及.NET Core.目前已提供Abp模块的封装,支持开箱即用. Nuget 新的包 ...
- 小白学 Python 爬虫(37):爬虫框架 Scrapy 入门基础(五) Spider Middleware
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 程序员如何才能跨过高级级别,譬如腾讯T3.1/阿里P7
首先自我介绍下自己履历:5年前过了腾讯的T3.2,最近又在1年多前过了阿里的P8,目前在B站. **腾讯** 在腾讯我是T2.1社招一般水平入职的,3年后到了T3.2.中间是经历过几个转变:刚来的半年 ...