Angular directive&&Vue component

2017-05-05 13:33

小小的分享,加一下经验,大神请无视。
directive 也是组件,里面的scope用来传递数据绑定关系,实质其实就是用来进行父子组件之间的通信。同样的Vue的component也是一样的,也是用来组件的,里面的通讯方式用了另一个名词 props:实质都是一样的,这里我贴代码大家看一下哦,
Angular directive

js

 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
js

Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})
var app7 = new Vue({
  el: '#app-7',
  data: {
    groceryList: [
      { text: '蔬菜' },
      { text: '奶酪' },
      { text: '随便其他什么人吃的东西' }
    ]
  }
})

html

<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结构以及他背后的通讯所带来的数据了