vue2.0有哪些变化

时间:2022-09-25 14:04:26
  • vue2.0之后有哪些变化:

  1.每个组件模板template,不再支持片段代码

    之前:

      <template>
        <h3>vue-router+vue-loader</h3>
        <p>hshsh</p>
      </template>

       现在:必须有根元素

        <template>

          <div>
            <h3>vue-router+vue-loader</h3>
            <p>hshsh</p>

          </div>
        </template>

  2.推出一个新的组件  如var home={

                template:' '  ->   代替了之前的Vue.extend({})的形式,直接把对象抛出来,就认为成是组件了。

              }

  3.生命周期

    之前:

    init created  beforeCompile  compiled  ready   beforeDestroy  destroyed

    现在:

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

    created          组件实例创建完毕,属性已经绑定

    beforeMount  模板编译之前

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

    beforeUpdate  组件更新之前

    updated     组件更新完毕

    beforeDestroy  组件销毁之前

    destroyed         组件销毁后

   4.循环

     2.0默认可以添加重复的数据,之前是必须加个track-by="$index"

      arr.forEach(function(item,index){ });

     去掉了一些隐式变量  $index $key

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

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

   5.track-by="$index"

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

   6.自定义键盘指令

    之前:Vue.directive("on").keyCodes.ctrl = 17;

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

    7.过滤器

    内置过滤器都删了

    自定义过滤器还有,但是:

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

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

      8.组件通信  vm.$emit()  vm.$on()

    子级想拿到父级的数据:通过props

    之前子组件可以更改父组件信息,利用sync   eg:  :msg.sync="change"

    现在不允许

    如何改:

      a)父组件每次传一个对象给子组件,对象引用

      b)只是追求不报错,可以用mounted的钩子函数,改变自身数据

       9.可以单一事件管理组件通信  ps:vuex以后单独学习

    var Event = new Vue();

    Event.$emit('事件名','数据');

    Event.$on('事件名',function(){  }.bind(this));

    10.动画

    transition不再是属性:transition="fade"

    而是像模板一样的标签了<transition name="fade" @before-enter="" @enter="" @after="" @before-leave="" @leave="" @after-leave="">这里放运动的元素,属性,路由。。。</transition>

    .fade-enter-active,.fade-leave-active{transition:1s all ease;}

    .fade-enter  初始状态

    .fade-enter-active 变成什么样,元素显示出来的时候

    .fade-leave

    .fade-leave -active 变成什么样,元素离开的时候

    配合animate.css使用:把fade和name去掉。给transition加enter-active-class="zoomInleft" leave-active-class="zoomOutRight",给运动的元素本身加class="animated"

    如果一组元素运动,标签换成<transition-group></transition-group>并且把每个运动元素加个:key="index",其他同上

    11.路由vue-router和vue-loader

    路由改变:

    1.布局的改变

    之前:<a v-link="{path:'/home'}">我是主页</a>

    现在:<router-link to="/home">我是主页</router-link>  它会自动解析成a v-link形式

    <router-view>没变

    2.路由具体写法

    var Home ={      //准备组件

      template:'<h3>我是主页</h3>'

    }

    const routes = [   //配置路由

      {path:'/home',component:Home},

      {path:'*',redirect:'/home'}   //重定向

      ...一个个json

    ];

    const router = new VueRouter({routes:routes});  //生成路由实例   简写成对象的形式 :const router = new VueRouter({routes});

    new Vue({   //最后挂到vue上

      router,

      el:'#box'

    });

    vue-loader一样的。配合起来使用也一样。

    12.路由嵌套

    const routes = [   //配置路由

      {path:'/home',component:Home},

      {path:'/news',component:News,

        children:[

          {path:'/newsname',component:newsNameDetail},

          {}

        ]

      },

      {path:'*',redirect:'/home'}   //重定向

      ...一个个json

    ];

    带有参数的路由配置

    

    //组件
    var Home={
      template:'<h3>我是主页</h3>'
    };
    var User={
      template:`
      <div>
      <h3>我是用户信息</h3>
      <ul>
        <li><router-link to="/user/strive/age/10">Strive</router-link></li>
        <li><router-link to="/user/blue/age/80">Blue</router-link></li>
        <li><router-link to="/user/eric/age/70">Eric</router-link></li>
      </ul>
      <div>
      <router-view></router-view>
      </div>
      </div>
      `
    };
    var UserDetail={
      template:'<div>{{$route.params}}</div>'
    };

    //配置路由
    const routes=[
      {path:'/home', component:Home},
      {
      path:'/user',
      component:User,
        children:[
          {path:':username/age/:age', component:UserDetail}
        ]
      },
       {path:'*', redirect:'/home'} //404
     ];

      //生成路由实例
      const router=new VueRouter({
        routes
      });

      //最后挂到vue上
      new Vue({
        router,
        el:'#box'
       });

    

    

vue2.0有哪些变化的更多相关文章

  1. Vue1&period;x 到Vue2&period;0的一个变化

    小弟初来乍到,写的不好的地方还望指正.谢谢各位! 废话不多说  进入正题: Vue1.x到2.0的一个变化 1. 在每个组件模板,不在支持片段代码  组件中模板: 之前:     <templa ...

  2. vue1&period;0和vue2&period;0的区别&lpar;一&rpar;

    今天我们来说一说vue1.0和vue2.0的主要变化有哪些 一.在每个组件模板,不在支持片段代码 VUE1.0是: <template> <h3>我是组件</h3> ...

  3. vue2&period;0动画

    相对于vue1.0来说,vue2.0的动画变化还是挺大的, 在1.0中,直接在元素中加 transition ,后面跟上名字. 而在vue2.0中,需要把设置动画的元素.路由放在<transit ...

  4. VUE2&period;0不可忽视的很多变化

    今天使用webpack-sample初始一个vue-cli项目,在app.vue文件中添加了个钩子函数ready,可是ready内的事件一直不执行,检查了webpack文件和package.json也 ...

  5. vue2&period;0变化

    之前有很多的vue知识总结都是围绕1.0版本实现的,下面主要总结一下2.0相对于1.0的一些变化. 组件定义 在vue1.0中,我们有使用vue.extend()来创建组件构造器继而创建组件实例,如下 ...

  6. Vue2&period;0中v-for迭代语法变化(key、index)【转】

    转自:http://blog.csdn.net/sinat_35512245/article/details/53966788 Vue2.0的代码中发现 $key这个值并不能渲染成功,问题如下:但是v ...

  7. Vue2&period;0以后,有哪些变化

    最近移动端项目版本升级,Vue由之前的1.0升级到2.3,那么,Vue2.0之后,有哪些细节的变化呢,现在总结如下: 1.在每个组件模板,不再支持片段代码 组件中模板: 之前: <templat ...

  8. Vue2&period;0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器

    组件模板: 之前: <template> <h3>我是组件</h3><strong>我是加粗标签</strong> </templat ...

  9. vue2&period;0路由变化1

    路由的步骤 1.定义组件 var Home={ template:'<h3>我是主页</h3>' }; var News={ template:'<h3>我是新闻& ...

随机推荐

  1. Linux查看端口、进程情况及kill进程

    看端口: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat –apn 查看所有的进程和端口使用情况.发现下面的进程列表,其中最后一栏是P ...

  2. 编码神器——Sublime Text 包管理工具及扩展大全

    Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...

  3. 【html】【18】高级篇--下拉列表&lbrack;竖向手风琴&rsqb;

    下载:  http://sc.chinaz.com/jiaoben/141027501240.htm html: <!DOCTYPE html> <html> <head ...

  4. HDoj-1228-A &plus; B

    A + B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. Git是个好工具(转)

    Git是分布式版本控制系统,我们常用的版本控制工具还有SVN.这里就得区分下什么是分布式版本控制系统,什么是集中化的版本控制系统. 集中化的版本控制系统 集中化的版本控制系统( Centralized ...

  6. PostgreSQL 简明使用说明

    原文地址:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html 期间,作者有写错的地方,已经做更改了. ...

  7. SQL Server 2008 R2 添加登录账户配置权限

    一.新建登录名1. 在登录名右侧的文本框中输入新建的管理员账号名称:2. 一对单选按钮组中,选择Sql Server 身份验证,并输入登录密码:3. 勾选强制实施密码策略复选框:(密码策略一般是指加强 ...

  8. SSH构造struts2项目

    第一在pom.xml导入相应的包 (网上有很多导入多个包的教程,我缩减到一个了) <project xmlns="http://maven.apache.org/POM/4.0.0&q ...

  9. MySQL使用LOAD DATA LOCAL INFILE报错

    在windows系统的MySQL8.0中尝试执行以下语句时报错 mysql> LOAD DATA LOCAL INFILE '/path/filename' INTO TABLE tablena ...

  10. RDKIT&plus;postgresql做化合物数据存储与查找

    RDKIT: rdkit的安装与使用,直接conda  instal rdkit,不行的话,使用源码安装,将RDKIT源码下载解压到acaconda的pkg目录下,打开cmd,进入pkg下的 rdki ...