
注冊的組件里面包含了所有內容:數據(一定是函數,使用函數會形成閉包環境,保證了每一個組件擁有獨立得數據),模板,方法
組件注冊注意事項
1 data必須是一個函數
2 組件模板內容必須有單個根元素
3 組件模板內容可以是模板字符串
注意:如果采用駝峰命名,只能在字符串中使用駝峰樣式的名字,如果在普通模板中只能轉化為短橫線的方式,如下圖:
局部注冊的東西只能在注冊他的父組件中使用,其他地方不行

子組件通過props: [ ] 接收
子組件:
完整演示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
</style>
</head>
<body>
<div id="app">
<zu-jian title='靜態傳值' :name='msg'></zu-jian>
</div>
</body>
<script type="text/javascript">
Vue.component('zu-jian', {
props: ['title', 'name'],
template:`
<div>
{{title}}----
{{name}}
</div>
`
})
var vm = new Vue({
el: '#app',
data: {
msg: '動態傳值'
}
})
</script>
</html>
props類型為數值與布爾時,如果不加不用v-bind(也就是不加:)做綁定,得到的都是字符串。


最終模板會顯示:

現在要求對子組件的第二個li顯示為藍色。這時就用到了作用域插槽。

通過slot傳值,父組件通過template中的slot-scope接收。這下面的{{item.name}}可刪可不刪。
