Vue.js2.0--1.0区别

作者: kirito_song | 来源:发表于2017-04-06 17:18 被阅读135次
4c21a75a8ac95334ca3f09719caa4.jpg

vue1.0学完了。对比课件整理一下2.0的改变。还是挺多的

组件

1、template写法

1.0 支持片段代码

<template id="aaa">
     <h3>我是组件</h3>
     <strong>我是加粗标签</strong>
</template>

2.0必须用根元素包裹住代码段

<template id="aaa">
    <div>   
        <h3>我是组件</h3>
        <strong>我是加粗标签</strong>
    </div>
</template>

2、组件注册

1.0 ---Vue.extend生成对象然后注册

var Aaa=Vue.extend({
  //直接显示
  template:"<h3 @click='change'>我是标题3</h3>",
  //显示数据
  //****data必须是函数的形式,函数必须返回一个对象(json)
  data(){
      return {
          msg:'数据MSG'
      }
  },
  //添加方法
  methods:{
      change(){
          this.msg="changed";
      }
  }
});

2.0 ---直接生成对象然后注册

var Home={
    template:'',
    data(){},  
    method(){}
};

注册保持不变

//全局
Vue.component('aaa',Aaa)
//局部
//vue中
components:{ //局部组件
  'aaa':Aaa
}

生命周期

1.0

created -> 实例已经创建
beforeCompile -> 编译之前
compiled -> 编译之后
ready -> 插入到文档中 √
beforeDestroy -> 销毁之前
destroyed -> 销毁之后

2.0

beforeCreate  组件实例刚刚被创建,属性都没有
created 实例已经创建完成,属性已经绑定
beforeMount 模板编译之前
mounted 模板编译之后,代替之前ready  *
beforeUpdate    组件更新之前
updated 组件更新完毕  *
beforeDestroy   组件销毁前
destroyed   组件销毁后

循环

1、重复添加

1.0

 track-by="$index"

2.0

默认可以重复添加

2、隐式变量

1.0

v-for="(val,index) in array"
v-for="(val,key) in array"
track-by="id"//提升性能
@click="changeImgForCarousel(index)"//方法传入index

2.0---更加贴近原生

v-for="(val,index) in array"
v-for="(val,key) in array"
:key="index"//提升性能

自定义键盘事件

1.0

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

2.0

Vue.config.keyCodes.ctrl=17;

过滤器

2.0
删除了全部1.0自带过滤器
json改为默认配置

自定义过滤器

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

组件通信

父子组件通信

1.0

子组件可以更改父组件信息(可以是同步.sync)

2.0

不允许直接给父级的数据,做赋值操作
如果非要修改:

 同步:父组件每次传一个对象给子组件, 对象之间引用
 非同步:子组件中以属性承接、直接修改子组件属性

兄弟组件通信

2.0

//注册一个空的Vue对象作为媒介
var Event=new Vue();
//发送数据
Event.$emit('msg-name', msg)
//接收数据
Event.$on('msg-name',function(msg){
    msg
}.bind(this));

动画

由1.0中的属性。改为2.0中的<transition>标签

//以name作为自定义动画关联名
<transition name="fade"
        @before-enter="beforeEnter"
        @enter="enter"
        @after-enter="afterEnter"
        @before-leave="beforeLeave"
        @leave="leave"
        @after-leave="afterLeave">
        <p v-show="show"></p>
    </transition>
 //style的标签名也发生了变化
 <style>
    p{
        width:300px;
        height:300px;
        background: red;
    }
    //动画运行时间
    .fade-enter-active, .fade-leave-active{
        transition: 1s all ease;
    }
    //显示动画结束状态
    .fade-enter-active{
        opacity:1;
        width:300px;
        height:300px;
    }
    //消失动画结束状态
    .fade-leave-active{
        opacity:0;
        width:100px;
        height:100px;
    }
    //动画初始状态
    .fade-enter,.fade-leave{
        opacity:0;
        width:100px;
        height:100px;
    }
</style>

配合animate.css

<transition 
       enter-active-class="animated zoomInLeft"
       leave-active-class="animated zoomOutRight">
    <p v-show="show"></p>
</transition>
//或者---animated也可以直接给元素添加
<transition 
       enter-active-class="zoomInLeft"
       leave-active-class="zoomOutRight">
    <p v-show="show" class="animated"></p>
</transition>

动画组<transition-group>标签

<transition-group 
     enter-active-class="zoomInLeft"
     leave-active-class="zoomOutRight">
        //:key=''是元素运动的必须属性
        <p v-show="show" class="animated" :key="1"></p>
        <p v-show="show" class="animated" :key="1"></p>
</transition-group>

相关文章

  • Vue.js2.0--1.0区别

    vue1.0学完了。对比课件整理一下2.0的改变。还是挺多的 组件 1、template写法1.0 支持片段代码<...

  • 区别

    人和人是有很大区别的,有思想的区别有段位的区别有思考方式的区别有教育的区别身高的区别长相的区别品位的区别衣著打扮的...

  • cocoapods本地私有库

    与公开私有库的区别spec文件区别 podfile区别

  • $arr['0']和$arr[0]的区别

    区别一: 区别二:

  • 指针和引用的区别

    转自 :c++中,引用和指针的区别 自己小结: (1)非空区别 (2)合法性区别 (3)可修改区别 (4)应用区别

  • 2021-07-27

    有区别吗 真的有区别吗 我猜不猜得到有区别吗 有什么区别 我说不说出来有区别吗 有什么区别 你有改变什么吗 有什么...

  • 源码包管理-源码包与RPM包的区别

    大纲 源码包与 RPM 包的区别 源码包安装过程 源码包与RPM包的区别 1. 区别 安装之前的区别:概念上的区别...

  • 读经典的一些思考

    今日读经典,不同人尤其成年人或有些区别与先后。一曰:时间区别,二曰:年龄区别,三曰:境遇区别,四曰:人之区别。 所...

  • iOS 基础知识

    strong & copy 区别 strong & copy 区别 code

  • 单词辨析

    germ与bacteria区别 a few 与 few 区别

网友评论

    本文标题:Vue.js2.0--1.0区别

    本文链接:https://www.haomeiwen.com/subject/yhfqattx.html