Vue父子组件数据传输(父—>子):
1、创建子组件构造器
2、对子组件构造器进行注册
3、采用props方式对子组件实现数据传输
4、使用子组件,在子组件使用中采用v-bind绑定父组件数据,最终实现父组件向子组件传输数据
5、驼峰标识 :props命名中存在驼峰,在绑定vue的div中,实现关联处,大些字母M 在此变成 -m
6、自定义template中,如果多个html元素,需要设置一个根html元素,一般为div
<body>
<div id = "app">
<!-- cnp中将父组件向子组件中传输 -->
<!--驼峰标识:大些字母M 在此变成 -m-->
<mycpn :cinfo="infos" :c-communtiy="cominfo"></mucpn>
</div>
<!-- template 编写自己的模版 -->
<template id = "mytemp">
<!--template中有多个html元素时,必须设置一个根html,此处为div -->
<div>
<h4> 这是魔戒系列电影</h4>
<p v-for = "m in cmovies">{{m}}</p>
<h4>{{cmessage}}</h4>
<h4>工作社区:{{cCommuntiy}}</h3>
</div>
</template>
<script>
//创建子组件 #mytemp 创建组件构造器对象
//原始为Vue.extend(template:模版具体内容(如div等))
//Vue.component("组件标签名",自定义的组件构造器) 此注册为全局变量
//以下为语法糖写法
const cnp = {
template:"#mytemp",
// 基础写法props: ["cmovies","cmessage"]
//标注数据格式 常用格式包括Array String Number Boolean Object Date Function
//props: {
// cmovies:Array,
// cmessage:String,
// }
props: {
cmovies:{
type:Array,
//default:[] 下面写法采用了工厂函数的形式,有的vue版本要求
default(){
return [];
},
requried:true
},
cmessage:{
type:String,
default:"初始化"
}
}
}
//创建父组件
const app = new Vue({
el:"#app",
//data 严格按照函数格式编写,是函数格式,则外部调用该data是新建一个对象
//多次调用该data,是建立不同对象,可以说相互之间解偶
data () {
return {
movies:["魔戒现身","双塔奇兵","王者归来"],
message:"以上为魔戒系列电影。"
}
},
//组件注册的语法糖
components: {
cnp
}
})
</script>
</body>