VUE中父组件向子组件传递数据 props使用
VUE中,子组件是不能直接访问父组件的数据(一般来说,当然如果你要破坏原则也是可以),如下<
<body>
<div id="fathercomponent">
<ul>
<li v-for="item in fatherdatas">{{item}}</li> <!--父组件可以访问它自己的数据-->
</ul>
<child-component></child-component>
</div>
</body>
<script type="text/javascript">
Vue.component('child-component', {
// template:'<ul><li v-for="item in fatherdatas"></li></ul>'//子组件不能访问到父组件的数据
})
vm = new Vue({
data: {
fatherdatas: [1,2,3,4,5]
}
}).$mount('#fathercomponent');
</script>
上面代码 vm实例挂在了id 为fathercomponent 的DIV中,相当于fathercomponent为一个组件了,这个时候我们在其中定义了一个另一个新组件,这个新定义的组件,和原来的组件,即为父子关系,暂且命名为child-component
我们在vm 中定义的数据 fatherdatas,是父组件fathercomponent中的数据,可以直接在父组件中引用,子组件内部是无法访问到fatherdatas数据的。如果我们需要访问这个fatherdatas需要通过props属性来实现,具体如下
<div id="fathercomponent">
<ul>
<li v-for="item in fatherdatas">{{item}}</li> <!--正确父组件可以访问它自己的数据-->
</ul>
<child-component :dataarr="fatherdatas"></child-component> <!--我们将父组件中的fatherdatas数据传给子组件中的dataarr-->
</div>
Vue.component('child-component', {
props: ['dataarr'],//给props添加一个属性,这个属性名字是之前在组件标签中加的
template: '<ul><li v-for="item in dataarr">{{item}}</li></ul>' //这个时候父组件中的fatherdatas 已经传递给了当前组件的dataarr,这样就可以访问了
})
vm = new Vue({
data: {
fatherdatas: [1,2,3,4,5]
}
}).$mount('#fathercomponent');
父组件传递给子组件,是按值传递,因为此时的值是一个对象地址,所以不管是改子组件中的dataarr,还是改父组件fatherdatas,都会影响到另一方,如下
<div id="fathercomponent">
<ul>
<li v-for="item in fatherdatas">{{item}}</li> <!--正确父组件可以访问它自己的数据-->
</ul>
<child-component :dataarr="fatherdatas" @father="getfatherdatas"></child-component> <!--我们将父组件中的fatherdatas数据传给子组件中的dataarr-->
</div> <!--定义一个father事件-->
Vue.component('child-component', {
props: ['dataarr'],//给props添加一个属性,这个属性名字是之前在组件标签中加的
template: '<ul><li v-for="item in dataarr">{{item}}</li></ul>', //这个时候父组件中的fatherdatas 已经传递给了当前组件的dataarr,这样就可以访问了
created: function () {
this.dataarr.push(6);//子组件中的dataarr 添加一个数组元素
this.$emit('father');//触发组件的father事件
}
})
vm = new Vue({
methods: {
getfatherdatas() {
console.log(this.fatherdatas.join(','));//输出1,2,3,4,5,6
}
},
data: {
fatherdatas: [1,2,3,4,5]
}
}).$mount('#fathercomponent');
VUE中父组件向子组件传递数据 props使用的更多相关文章
- vue中父级与子组件生命周期的先后顺序
1.vue的生命周期 2.views/createrCustormer.vue为父级 <template> <expressService /> </ ...
- Vue父子组件通信(父级向子级传递数据、子级向父级传递数据、Vue父子组件存储到data数据的访问)
Vue父子组件通信(父级向子级传递数据.子级向父级传递数据.Vue父子组件存储到data数据的访问) 一.父级向子级传递数据[Prop]: ● Prop:子组件在自身标签上,使用自定义的属性来接收外界 ...
- Vue中利用$emit实现子组件向父组件通信
Vue中利用$emit实现子组件向父组件通信 父组件 <template> <div> <p>我是父组件</p> <child :isShow=& ...
- vue父页面给子页面传递数据
父页面: <template> <div>{{msg}} <Son title='向子文件传递数据' :data='data' :lifemsg ='lifemsg' : ...
- 总结Vue第二天:自定义子组件、父子组件通信、插槽
总结Vue第二天:自定义子组件.父子组件通信.插槽 一.组件: 组件目录 1.注册组件(全局组件.局部组件和小demo) 2.组件数据存放 3.父子组件通信(父级向子级传递数据.子级向父级传递数据) ...
- 单文件组件.vue---父子组件通信
每一个.vue 文件就是一个 组件,组件和组件相互组合,就成了一个应用,这就涉及到的组件和组件之间的通信,最常用的就是父子之间的通信.在vue 中, 在一个组件中通过 import 引入另一个组件,这 ...
- vue-父组件向子组件传值
一.父组件向子组件传值 其实该问题是说子组件如何访问父组件的属性和方法?那么根据对组件化的理解,无非就是要解决两个问题: 1.父组件如何将值传给子组件? 2.子组件如何获取父组件传递过来的值? 解读v ...
- React中父组件与子组件之间的数据传递和标准化的思考
React中父组件与子组件之间的数据传递的的实现大家都可以轻易做到,但对比很多人的实现方法,总是会有或多或少的差异.在一个团队中,这种实现的差异体现了每个人各自的理解的不同,但是反过来思考,一个团队用 ...
- Vue中,父组件向子组件传值
1:在src/components/child/文件夹下,创建一个名为:child.vue的子组件 2:在父组件中,设置好需要传递的数据 3:在App.vue中引入并注册子组件 4:通过v-bind属 ...
- Vue父组件向子组件传递一个动态的值,子组件如何保持实时更新实时更新?
原文:https://blog.csdn.net/zhouweixue_vivi/article/details/78550738 2017年11月16日 14:22:50 zhouweixue_vi ...
随机推荐
- ab压测札记(Apache Bench)
1 ab安装 ab实际上是apache httpd里面的一个工具或者说子模块,安装apache httpd可以参考另一篇文章JBOSS集群的2.3节 安装目录:/apache目录/bin/,如下 2 ...
- android应用开发-从设计到实现 3-4 静态原型的状态栏
静态原型的状态栏 状态栏Symbol 状态栏似乎非常复杂,有wifi信号.手机信号.时间.电量等信息,幸好Sketch原生就自带的现成组件,你能够直接拿过来就用了.当然.你也能够自己一个一个去画,只是 ...
- scala akka Future 顺序执行 sequential execution
对于 A => B => C 这种 future 之间的操作,akka 默认会自动的按照顺序执行,但对于数据库操作来说,我们希望几个操作顺序执行,就需要使用语法来声明 有两种声明 futu ...
- SpringBoot(九)-- SpringBoot JDBC
1.属性配置文件(application.properties) # type 可以修改连接池类型,默认采用Tomcat的连接池 # spring.datasource.type=com.alibab ...
- Kafka(一)-- 初体验
一.概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些 ...
- Splash plugins_enabled 属性
plugins_enabled属性可以控制浏览器插件(如 Flash 插件)是否开启.默认情况下,此属性是 false ,表示不开启. function main(splash, args) spla ...
- 说说UART(转)
串口协议基础 1 串口概述 串口由收发器组成.发送器是通过TxD引脚发送串行数据,接收器是通过RxD引脚接收串行数据.发送器和接收器都利用了一个移位寄存器,这个移位寄存器可以将数据进行“并转串”和“串 ...
- java 读写文件例子
在linux下可以读写中文 import java.io.*; import java.text.SimpleDateFormat; import java.util.*; public class ...
- 二.jquery.datatables.js表格数据添加
1.后台php public function addtable(){ $data = $_POST; if(M('yanfa_project')->add($data)){ $this-> ...
- 剑指offer——35复杂链表的复制
这题很是巧妙. 突破了常规思维. 竟然可以把传入进来的链表和复制的链表链在一起.然后再算出slibling指针.最后在分离. 直接把空间复杂度变为O(1)了. 很巧妙,很实用. 题目: 请实现函数Co ...