component 只是多了個名字可複用的 vm instance 罷了vue
component 的不少屬性均可以複用,除了 el 這樣的 root-specificide
data 必須是 functionpost
這樣能夠實現 data 複用,讓每個引用都有一個獨立的 data 值ui
data: function () { return { age: 20 } }
能夠分爲 local 和 global 兩種spa
globalcode
Vue component() --- 註冊component
new Vue() --- 使用htm
例子blog
<div id="componentId2"> <my-component v-for="item in posts" :key="item.id" :title="item.title"></my-component> </div> // 注意是使用 bind 來實現數據的綁定 <script> Vue.component("my-component", { props: ['title'], template: '<div>{{ title }}</div>' }) new Vue({ el: '#componentId2', data: { posts: [ {id: 1, title: 'kdljfklajldkfjadsl'}, {id: 2, title: 'sdkafnm'}, {id: 3, title: 'kjlk'} ] } }) </script>
template 只能有一個 root element
既不管要寫多少 html 代碼,都只能放在一個 root element 下面
否則就只顯示第一個 element
。。。未完待續
$emit : 發射方法到父組件,同時能夠傳遞值過去
傳遞的值經過 $event 獲取,至關於 $event 是 value 的 key
// vue Vue.component('use-emit', { template: '<div>' + '<button v-on:click="$emit(\'clickFun\', emit-value)">click</button>' + '<div>' }); //html <use-emit v-on:clickFun="someFun($event)"></use-emit> // ?