一个故事讲懂vue父子组件传值
作者:李佳明同学
链接:https://www.jianshu.com/p/2272b6ca0f0c
一个故事讲懂vue父子组件传值
讲故事前先讲代码
父组件向子组件传值
父组件数据传递给子组件可以通过props属性来实现
父组件:
<template>
<div id="app">
<child-component
v-bind:dataOfChild="dataOfParent">
</child-component>
</div></template><script>
import childComponent from '
./components/childComponent'
export default { name: 'App',
data(){ return {
dataOfParent:'1111111111'
}
}, components:{
childComponent
},
}</script>
子组件:
<script>export default {
name: 'childComponent',
//子组件通过props来接收数据:
props:['dataOfChild'],
data () { return {
dataOfChild:this.dataOfChild
}
}
}</script>
父向子传值总结:
v-bind:dataOfChild="dataOfParent"
(父组件)====>props:['dataOfChild'](子组件)
子组件向父组件传值
子组件:
<template>
<div>
<button @click="sendDataToParent">
向父组件传值</button>
</div></template><script>
export default {
name: 'childComponent',
methods:{
sendDataToParent:function () {
//$emit(even,value)even 是一个函数,
value 是传给父组件的值
this.$emit('parentFunction',
'helloworld')
},
}
}</script>
父组件:
<template>
<div id="app">
<!--监听子组件触发的parentFunction事件,
然后调用customParentFunction方法-->
<child-component v-on:parentFunction=
"customParentFunction">
</child-component>
</div></template><script>
import childComponent from './components
/childComponent'
export default { name: 'App',
components:{
childComponent
}, methods: {
customParentFunction:function (data) {
console.log('子组件传过来的值',data)
//helloworld
}
}
}</script>
子向父传值总结:
this.$emit('parentFunction',
'helloworld')(子组件)====>
v-on:parentFunction="
customParentFunction"(父组件)====>
customParentFunction:function
(data) {}(父组件)
接下来是强化记忆阶段:
情节一
话说,在遥远的大山那边,有一对父子,父亲叫老王,儿子叫小明。父亲由于岁数大了,平常就在家干点农活,小明为了养家,外出打工。
有一天,小明想爸爸了,拿起手机给爸爸发短信,子组件主动向父组件传值
,小明拿起手机,调用sendDataToParent方法
,在通讯录找到了爸爸的手机号,this.$emit的第一个参数,函数名
,
然后拿起手机,抠了一堆字:爸爸我想你了,最近怎么样?this.$emit的第二个参数,
内容
,然后发送~,短信传到了信号塔,child-component相当于基站,基站对所有短信进行监听,正好,基站的列表里有小明父亲的名单,===》v-on:parentFunction
,然后,短信又由基站传到了老王那边,老王的手机铃想了:苍茫的天涯是我的爱 绵绵的青山脚下花正开~~~响铃相当于调用customParentFunction方法,然后,值就传过来了
。
情节二
但是呢,小明在外打工,有时工作比较忙,忘了给爸爸发短信,所以老王想儿子了,但老王比较保守,又没大上过学,也不会打字,所以写了封信,去了邮局。
老王用笔在纸上写了好多内容,把纸 纸相当于dataOfParent,也就是数据
放进了信封信封相当于属性,也就是v-bind:dataOfChild
里,然后给了邮局相当于child-component,相当于一个中介
,快递员进行派送,小明来到邮箱相当于props
,看到里边有封信相当于父组件的值
,拿了出来。
这是我第一次用情景故事的形式来写文章,也是一次新的尝试,如有不足,或者错的地方,还请大家多多指点。
本文完~
一个故事讲懂vue父子组件传值的更多相关文章
- vue父子组件传值加例子
例子:http://element-cn.eleme.io/#/zh-CN/component/form 上进行改的 父传子:用prop:子组件能够改变父组件的值,是共享的,和父操作是 ...
- 关于Vue父子组件传值(复杂数据类型的值)的细节点
vue 父子组件传值是很常见的,多数情况下都是父传递给子的值是基础数据类型,如string,number,boolean, 当父组件值被修改时,子组件能够实时的作出改变. 如果父子传值的类型是复杂数据 ...
- vue 父子组件传值以及方法调用,平行组件之间传值以及方法调用大全
vue项目经常需要组件间的传值以及方法调用,具体场景就不说了,都知道.基本上所有的传值都可以用vuex状态管理来实现,只要在组件内监听vuex就好. vue常用的传值方式以及方法有: 1. 父值传子( ...
- Vue 父子组件传值 props
1.Vue 的渲染周期: vue 如何实现响应式追踪. 父子组件通信有很多方式,今天单独聊下props 的方式.我们通过查找官方文档很容发现,props传值有静态和动态两种传值方式. 当然props ...
- vue 父子组件传值,兄弟组件传值
父子组件中的传值 父向子 v-bind props <!-- 组件使用v-bind传值 --> <router :msg="msg"></rou ...
- Vue父子组件传值以及父调子方法、子调父方法
稍微总结了一下Vue中父子间传值以及相互调方法的问题,非常基础.希望可以帮到你!先来个最常用的,直接上代码: 1.父传值给子组件 父组件: <template> <div> & ...
- VUE父子组件传值问题
一.父组件向子组件传递数据 组件实例的作用域是孤立的.这意味着不能(也不应该)在子组件的模板内直接引用父组件的数据.要让子组件使用父组件的数据,我们需要通过子组件的props选项. 1.静态props ...
- Vue父子组件传值之——访问根组件$root、$parent、$children和$refs
Vue组件传值除了prop和$emit,我们还可以直接获取组件对象: 根组件: $root // 单一对象 表示当前组件树的根 Vue 实例,即new Vue({...根组件内容}).如果当前实例没有 ...
- vue父子组件传值
1.父组件向子组件传值 例如app.vue是父组件,v-header.vue是子组件,实现app向v-header传值父组件需要自定义自己的title值, 子组件v-header内容 <temp ...
随机推荐
- HTML知识梳理(笔记)
HTML常见元素 meta 定义和用法<meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. <meta> 标 ...
- Java字节缓冲流和字符缓冲流学习
1.字节缓冲流 首先要明确一个概念:对文件或其他目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处是,能够高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来. BufferedInp ...
- Android Lint Problem
问题概述: Type: Android Lint Problem 解决方法: select problems -> quick fix-> Clear Lint Markers
- JS中常见的几种报错类型
1.SyntaxError(语法错误) 解析代码时发生的语法错误 var 1a; //Uncaught SyntaxError: Invalid or unexpected token 变量名错误 c ...
- Delphi 如何在程序中执行动态生成的Delphi代码
如何在程序中执行动态生成的Delphi代码 经常发现有人提这类问题,或者提问内容最后归结成这种问题 前些阵子有位高手写了一个“执行动态生成的代码”,这是真正的高手,我没那种功力,我只会投机取巧. 这里 ...
- [CSP-S模拟测试]:喝喝喝(模拟)
题目描述 奥利维尔和雪拉扎德在喝酒.两人连喝$18$瓶后,奥利维尔最终倒下了.奥利维尔服用了教会研究的醒酒药后,因为服用了太多产生了副作用,第二天睡不着了.他只好用数数的方式度过无聊的时光,不过他毕竟 ...
- @encode关键字
@encode() 为了更好的互操作性,Objective-C 的数据类型,甚至自定义类型.函数或方法的元类型,都可以使用 ASCII 编码.@encode(aType) 可以返回该类型的 C 字符串 ...
- 2018-2019-2 20175120 实验四《Android程序设计》实验报告
任务一:Android Studio的安装测试 任务要求:参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章: 参考 ...
- UPLOADIFY用法
把下面代码 this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); this.settings.but ...
- nginx配置-location
以 =开头表示精确匹配如 A 中只匹配根目录结尾的请求,后面不能带任何字符串. ^~ 开头表示uri以某个常规字符串开头,不是正则匹配 ~ 开头表示区分大小写的正则匹配; ~* 开头表示不区分大小写的 ...