1、vue实例可以看成是一个父组件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title-hellovuejs</title>
</head>
<body>
<div id ="app">
<!-- 3.使用组件 -->
<!-- <cpn v-bind:cmovies='movies' :cmessage='message'></cpn> -->
<!-- 参数在这里绑定传入 -->
<cpn :cmovies='movies' :cmessage='message'></cpn>
<!-- 下面是没有传递时,默认值的测试 -->
<!-- <cpn :cmovies='movies'></cpn> -->
</div>
<!-- 模板分离写法2 ,推荐,使用template标签-->
<template id="cpn1">
<div>
<!-- <p>{{cmovies}}</p> -->
<ul>
<li v-for="item in cmovies">{{item}}</li>
</ul>
<h2>{{cmessage}}</h2>
</div>
</template>
<script src="../js/vue.js"></script>
<script>
const cpn ={
template: '#cpn1',
// (1)第一种写法
// props: ['cmovies','cmessage'],
//(2)第二种写法,以对象的形式还可以限制类型
// props:{
// cmovies: Array,
// cmessage: String
// },
//(3)第三种方法,还可以提供默认值
props:{
cmovies: {
type: Array,
default(){
return []
}
},
cmessage: {
type: String,
default: "initaaa",
//required定义true后,则必须调用,否则报错
required: true
}
},
data(){
return{}
},
methods:{
}
};
//root组件
const chen1 = new Vue({
el: '#app', //用于挂载要管理的元素
data:{//定义数据
message:'你好啊,helloword',
movies: ['葫芦娃','大闹天宫','功夫熊猫']
},
components:{
cpn
}
})
</script>
</body>