vParent.vue
<template>
<div class="box">
<h3>parent</h3>
<div>name:{{name}}</div>
父组件使用属性给子组件传递数据,子组件通过props进行接收
<v-child :msg="name"></v-child>
for循环传值
<v-child v-for="item in arr" :key="item" :msg="item"></v-child>
</div>
</template>
<script>
import vChild from "./vChild.vue";
export default{
components:{
//注册组件
vChild:vChild,
},
data(){
return{
name:"丛基友",
arr:["王","李","相","要"]
};
},
};
</script>
<body>
<div id="app">
<!--
不加: 就是字符串
加: 之后 ''里面的是表达式
-->
<counter :count="1"></counter>
<!-- counter自定义属性传值 -->
<counter :count="0"></counter>
</div>
</body>
<script>
var counter = {
// 接受counter属性的值
// 子组件不能改变父组件传过来的值
props:['count'],
// 设置传值类型限制
props:{
name:String,
age:Number,
sex:String
}
props:{
name:{
type:String, //限制类型
required:true //必须传值
},
age:[
type:Number,
defalut:99 //默认值
]
}
data:function(){
// 子组件用新变量接收之后再修改
return{
number:this.count
}
},
template: '<div @click="handleClick">{{number}}</div>',
methods:{
handleClick:function(){
this.number++
}
}
}
var vm = new Vue({
el: '#app',
components:{
counter:counter
}
});
</script>