组件模板:

    之前:

      <template>

        <h3>我是组件</h3><strong>我是加粗标签</strong>

      </template>

    现在:  必须有根元素,包裹住所有的代码  

    例如:       

      <script>

          var Home={

            template:'#aaa'

        };

        window.onload=function(){

           new Vue({

               el:'#box',

              data:{

                msg:'welcome vue2.0'

              },

            components:{

                 'aaa':Home

             }

           });

         };

       </script>    

       <body>

        <template id="aaa">

        <div>

        <h3>我是组件</h3>

        <strong>我是加粗标签</strong>

        </div>

         </template>

        <div id="box">

        <my-aaa></my-aaa>

         {{msg}}

          </div>

      </body>

生命周期:  

      之前:

        init

        created

        beforeCompile

        compiled

        ready √ ->     mounted

        beforeDestroy

        Destroyed

      现在:

        beforeCreate 组件实例刚刚被创建,属性都没有

        created 实例已经创建完成,属性已经绑定

        beforeMount 模板编译之前

        mounted 模板编译之后,代替之前ready  *

        beforeUpdate 组件更新之前

        updated 组件更新完毕 *

        beforeDestroy 组件销毁前

        destroyed 组件销

例如:

      new Vue({

      el:'#box',

      data:{

       msg:'welcome vue2.0'

       },

       methods:{

        update(){

        this.msg='大家好';

       },

    destroy(){

       this.$destroy();

      }

    },

   beforeCreate(){

    console.log('组件实例刚刚被创建');

     },

  created(){

    console.log('实例已经创建完成');

     },

   beforeMount(){

    console.log('模板编译之前');

    },

  mounted(){

    console.log('模板编译完成');

     },

   beforeUpdate(){

  console.log('组件更新之前');

  },

  updated(){

  console.log('组件更新完毕');

    },

  beforeDestroy(){

  console.log('组件销毁之前');

    },

  destroyed(){

  console.log('组件销毁之后');

   }

   });

    <div id="box">

    <input type="button" value="更新数据" @click="update">

   <input type="button" value="销毁组件" @click="destroy">

   {{msg}}

  </div>

循环:

    2.0里面默认就可以添加重复数据

      去掉了隐式一些变量

      $index $key

    之前:

      v-for="(index,val) in array"

    现在:

      v-for="(val,index) in array"

      track-by="id"

    变成

      <li v-for="(val,index) in list" :key="index">

    例如:

      <script>

      window.onload=function(){

        new Vue({

           el:'#box',

           data:{

          list:['width','height','border']

          },

           methods:{

           add(){

           this.list.push('background');

          }

           }

       });

    };

   </script>

   <div id="box">

    <input type="button" value="添加" @click="add">

    <ul>

    <li v-for="(val,index) in list">

      {{val}} {{index}}

    </li>

    </ul>

  </div>

自定义键盘指令

      之前:Vue.directive('on').keyCodes.f1=17;

    现在:  Vue.config.keyCodes.ctrl=17

      例如:

      <script>

      //Vue.directive('on').keyCodes.ctrl=17;

      Vue.config.keyCodes.ctrl=17;

       window.onload=function(){

      new Vue({

        el:'#box',

        data:{

          },

        methods:{

       change(){

       alert('改变了');

       }

       }

       });

     };

    </script>

     <div id="box">

    <input type="text" @keyup.ctrl="change">

   </div>

   window.onload=function(){

new Vue({

  el:'#box',

  data:{

  list:['width','height','border']

  },

   methods:{

  add(){

  this.list.push('background');

   }

  }

  });

  };

   <div id="box">

  <input type="button" value="添加" @click="add">

  <ul>

   <li v-for="(val,index) in list" :key="index">

  {{val}} {{index}}

  </li>

  </ul>

 </div>

过滤器

    之前:

      系统就自带很多过滤

        {{msg | currency}}

        {{msg | json}}

        ....

        limitBy

        filterBy

        .....

      一些简单功能,自己通过js实现

    到了2.0, 内置过滤器,全部删除了

    自定义过滤器——还有

      但是,自定义过滤器传参

      之前: {{msg | toDou '12' '5'}}

      现在: {{msg | toDou('12','5')}}

    例如:

  <script>

    Vue.filter('toDou',function(n){

     //alert(input);

    return n<10?'0'+n:''+n;

    });

   window.onload=function(){

    new Vue({

      el:'#box',

      data:{

       msg:9

      }

    });

    };

  </script>

    例如:

<script>

Vue.filter('toDou',function(n,a,b){

alert(a+','+b);

//alert(input);

return n<10?'0'+n:''+n;

});

window.onload=function(){

new Vue({

el:'#box',

data:{

msg:9

}

});

};

</script>

  <div id="box">

{{msg | toDou('12','5')}}

</div>

Vue2.0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器的更多相关文章

  1. Vue2.0源码阅读笔记--生命周期

    一.Vue2.0的生命周期 Vue2.0的整个生命周期有八个:分别是 1.beforeCreate,2.created,3.beforeMount,4.mounted,5.beforeUpdate,6 ...

  2. vue2.0 关于Vue实例的生命周期

    什么是生命周期 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁的过 ...

  3. 通俗易懂了解Vue组件的生命周期

    1.前言 在使用vue2.0进行日常开发中,我们总有这样的需求,我就想在页面刚一加载出这个表格组件时就发送请求去后台拉取数据,亦或者我想在组件加载前显示个loading图,当组件加载出来就让这个loa ...

  4. React Native 中组件的生命周期

    概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle).所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命 ...

  5. Vue2.0的通用组件

    饿了么基于Vue2.0的通用组件开发之路(分享会记录)   Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库. ...

  6. vue的组件和生命周期

    Vue里组件的通信 通信:传参.控制.数据共享(A操控B做一个事件) 模式:父子组件间.非父子组件 父组件可以将一条数据传递给子组件,这条数据可以是动态的,父组件的数据更改的时候,子组件接收的也会变化 ...

  7. React组件和生命周期简介

        React 简介----React 是 Facebook 出品的一套颠覆式的前端开发类库.为什么说它是颠覆式的呢? 内存维护虚拟 DOM 对于传统的 DOM 维护,我们的步骤可能是:1.初始化 ...

  8. Jetpack 架构组件 Lifecycle 生命周期 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. 202-React.Component组件、生命周期

    一.概述 React可以将组件定义为类或函数.定义为类的组件当前提供了更多的功能.要定义React组件类,您需要扩展React.Component: class Welcome extends Rea ...

随机推荐

  1. C++ 头文件系列(exception)

    内容概览 一图解百问,但是有些地方我们需要特别指出: 类型在这里指通过typedef重定义的,例如函数类型.指针类型等. exception_ptr 在标准中是未定义具体实现的,因此它可能是类也可能是 ...

  2. Html5 Canvas笔记(1)-CanvasAppTemplate代码

    学了一段时间的Html5 Canvas,现想一段一段的将学习笔记整理出来放上来,先整理一段Canvas的模版文件代码,以后建立Canvas程序就不用重新写这些代码了,当然最好是将这个Html代码保存到 ...

  3. hdu 2516 取石子游戏 (斐波那契博弈)

    题意:1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍. 取完者胜,先取者负输出"Second win",先取者胜 ...

  4. UILabel的讲解

    首先,我先自定义几个名词,方便接下来的讲解工作.如下图所示: 接下来,通过五个方面来讲解我们能对UILabel做出哪些改变或者称之为设置: 1.文字 1.1普通文字:内容text.字体大小font.字 ...

  5. TextView的几个属性

    1. android:autoLink 自动识别文本中包含的链接,如网址.邮箱.电话.地图等:属性值有如下几种: web------------ ------只识别网址 email---------- ...

  6. node.js的路由

    app.js: app.use('/', routes);app.use('/reg', routes);app.use('/u/:user',routes);app.use('/post',rout ...

  7. 设计模式总结(Java)—— 适配器模式

    适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类.适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用.也就是说:当客户 ...

  8. Linux 安装Xampp以后,Apache服务器无法启动,以及启动后,连接sql数据库遇到的问题的解决方法

    xampp安装以后,搭建服务器的时候,我们会遇到哪些问题呢?1.MySQL Database 可以启动,而Apache Web Server无法启动?应该是80端口被占用,那么如何解决呢?我们可以通过 ...

  9. AngularJS路由跳转

    AngularJS是一个javascript框架,通过AngularJS这个类库可以实现目前比较流行的单页面应用,AngularJS还具有双向数据绑定的特点,更加适应页面动态内容. 所谓单页面应用就是 ...

  10. Sql server DATEADD日期函数的使用

    DATEADD日期函数 DATEADD() 函数在日期中添加或减去指定的时间间隔. 日:在当前日期上加两天 , ,'2014-12-30') 月:在当前日期上加两个月 , , 年:在当前日期上加两年 ...