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 ...
随机推荐
- 深度探索c++对象模型阅读笔记图
- $tarjan$简要学习笔记
$QwQ$因为$gql$的$tarjan$一直很差所以一直想着要写个学习笔记,,,咕了$inf$天之后终于还是写了嘻嘻. 首先说下几个重要数组的基本定义. $dfn$太简单了不说$QwQ$ 但是因为有 ...
- 洛谷P1462 通往奥格瑞玛的道路 题解 最短路+二分答案
题目链接:https://www.luogu.com.cn/problem/P1462 题目大意: 有 \(n\) 个点 \(m\) 条边,每个点有一个点权,每个边有一个边权.求所有长度不超过 \(b ...
- 1078 字符串压缩与解压 (20分)C语言
文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来表示.如果字符没有重复,就原样输出.例如 ...
- ACM北大暑期课培训第二天
今天继续讲的动态规划 ... 补充几个要点: 1. 善于利用滚动数组(可减少内存,用法与计算方向有关) 2.升维 3.可利用一些数据结构等方法使代码更优 (比如优先队列) 4.一般看到数值小的 (十 ...
- 【转】HTML5+WebGL:构建 3D 网页新世界
今年下半年, HTML5 和 WebGL 变成极热门词语,3D 网页来势汹汹.主流的浏览器 Google Chrome 以及 Mozilla Firefox 均致力于 HTML5+WebGL 的 3D ...
- 深入理解 CSS(Cascading Style Sheets)中的层叠(Cascading)
标题中的 Cascading 亦可以理解为级联. 进入正文,这是一个很有意思的现象.可以直接跳到 总结一下 部分,看完再回过头来阅读本文. 引子 假设我们有如下结构: <p class=&quo ...
- js六种数据类型
六种数据类型: undefined . boolean .string .number .object .function 效果地址:https://scrimba.com/c/cEedDGTd 代 ...
- 依赖注入之IConfiguration
public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; ...
- FindBugs报错
FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查 ...