小小的分享,加一下經驗,大神請無視。
directive 也是組件,裏面的scope
用來傳遞數據綁定關係,實質其實就是用來進行父子組件之間的通訊。一樣的Vue的component也是同樣的,也是用來組件的,裏面的通信方式用了另外一個名詞 props:
實質都是同樣的,這裏我貼代碼你們看一下哦,
Angular directivehtml
jsvue
angular.module('angularapp') .directive('dateSelect', function() { return { restrict: 'E', templateUrl: 'date-select.html', scope: { times: '=', query: '&' },
html數組
date-select(times='time',query='query()')
這裏咱們看到了 直接用自定義標籤 在其屬性上面 進行數據傳遞,首先html整個做用域屬於angularapp,因此傳遞時從本做用域到一個小的組件裏去,自定義標籤瀏覽器不識別,Angular 就會查詢自己的directive這個估計是個數組形式的一個空間看看哪一個dierective的名字跟這個匹配 而後執行directive就這樣,咱們的自定義標籤被識別出來了,而後把內容注入到這個標籤裏面。瀏覽器
Vue
jsapp
Vue.component('todo-item', { props: ['todo'], template: '<li>{{ todo.text }}</li>' }) var app7 = new Vue({ el: '#app-7', data: { groceryList: [ { text: '蔬菜' }, { text: '奶酪' }, { text: '隨便其餘什麼人吃的東西' } ] } })
htmldom
<div id="app-7"> <ol> <!-- 如今咱們爲每一個todo-item提供待辦項對象 --> <!-- 待辦項對象是變量,即其內容能夠是動態的 --> <todo-item v-for="item in groceryList" v-bind:todo="item"></todo-item> </ol> </div>
v-bind:todo="item"
這裏綁定了通信 這裏的組件是註冊在全局中,vue根做用域做爲他的掛載點,這樣就至關於他這個組件變得是最開放的公共組件,誰均可以調用這個組件,一樣的這個也是 瀏覽器識別不了這個標籤,因而就遍歷整個vue的這個組件空間,看看誰的名字對 就執行誰 而後呢 咱們就看到了這dom結構以及他背後的通信所帶來的數據了rest