Vue中组件之间数据的传递的示例代码
发布时间:2020-12-17 02:48:24 所属栏目:百科 来源:网络整理
导读:Vue中组件的作用域是隔离的,父组件中的数值子组件看不到!也就是说,用angular作比喻,组件的scope天生是scope:()的!如果父组件需要往子组件中传数据,此时应该使用标签属性: 子组件中,用props声明这个值即可。并且在template里面可以直接使用{{c}}来获
Vue中组件的作用域是隔离的,父组件中的数值子组件看不到!也就是说,用angular作比喻,组件的scope天生是scope:()的! 如果父组件需要往子组件中传数据,此时应该使用标签属性: 子组件中,用props声明这个值即可。并且在template里面可以直接使用{{c}}来获得这个属性,而不需要写为{{this.props.c}} const MyCompo = Vue.extend({
template : ` 我是MyCompo组件,我的a值是{{a}}子组件c:{{c}}`,props : ["c"],data : function(){ return { a : 1,b : 2 } },methods : { add : function(){ this.a ++; } } });export default MyCompo; 如果父组件中要传一个动态的值(就是父组件的data,不是死数),此时要用v-bind:来传递。 v-bind指令表示动态属性。 此时我们研究,子组件改变了这个值,父组件的值变不变。答:默认情况下不变! import Vue from "vue"; const MyCompo = Vue.extend({ 我是MyCompo组件,我的a值是{{a}},我的c值是:{{c}}</div>
`,methods : { export default MyCompo; 子组件的c值变化了,但是外面不变! 也就是说,默认情况下,父组件中的属性值如果传给儿子,子组件改变这个值,仅仅改变子组件中的值,父组件中的值不变。 如果非要让子组件能够改变父组件中的值,要加sync修饰符: 上面的c属性是一个基本类型值常数3。此时我们试试引用类型值。 父组件中增加d属性,值是json。 new Vue({
el : "#app",data : { c : 333,d : { v : 8888 } },components : { "my-compo" : MyCompo } }); 传给子组件:
Vue学习
我是父亲,我的c: {{c}} ,我的d:{{d | json}}
<script type="text/javascript" src="public/bundle.js"> |