1.3.1.父向子传递props
比如我们有一个子组件:
Vue.component("introduce",{
// 直接使用props接收到的属性来渲染页面
template:'<h3>{{title}}</h3>',
props:['title'] // 通过props来接收一个父组件传递的属性
})
- 这个子组件中要使用title属性渲染页面,但是自己并没有title属性
- 通过props来接收父组件属性,名为title
父组件使用子组件,同时传递title属性:
<script src="../vue-2.5.17.js"></script>
<div id="app">
<h1>打个招呼:</h1>
<!--使用子组件,同时传递title属性-->
<introduce title="大家好,我是奇哥"/>
</div>
<script type="text/javascript">
Vue.component("introduce",{
// 直接使用props接收到的属性来渲染页面
template:'<h1>{{title}}</h1>',
props:['title'] // 通过props来接收一个父组件传递的属性
})
var app = new Vue({
el:"#app"
})
</script>
效果:
1.3.2.传递复杂数据
我们定义一个子组件:
const myList = {
template:`
<ul>
<li v-for="item in items" :key="item.id">{{item.id}} : {{item.name}}</li>
</ul>
`,
props:['items']
}
案例:
<script src="../vue-2.5.17.js"></script>
<div id="app">
<list :items="items"></list>
</div>
<script>
Vue.component("list",{
template:`<ul>
<li v-for="item in items">{{item.username}} - {{item.age}}</li>
</ul>`,
props:['items']
})
var vm = new Vue({
el:"#app",
data:{
items:[{"username":"lucy",age:18},
{"username":"tom",age:20},
{"username":"jack",age:18},
{"username":"lily",age:21}
]
}
})
</script>
效果:
1.3.4 父向子传多值
<div id="app">
<mylist :lessions="lessionsData" :title="myname"></mylist>
</div>
<script>
Vue.component("mylist",{
template:`
<div>
<ul>
<li v-for="lession in lessions">{{lession.id}} - {{lession.name}}</li>
</ul>
大家好,我来自中国,我叫{{title}}
</div>`,
props:['lessions','title']
})
var vm = new Vue({
el:"#app",
data:{
lessionsData:[{id:1,name:"java"},
{id:2,name:"mysql"},
{id:3,name:"servlet"},
{id:4,name:"mybatis"}
],
myname:"李俊鹏"
}
});
</script>