vue2.0有哪些变化
- 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有哪些变化的更多相关文章
- Vue1.x 到Vue2.0的一个变化
小弟初来乍到,写的不好的地方还望指正.谢谢各位! 废话不多说 进入正题: Vue1.x到2.0的一个变化 1. 在每个组件模板,不在支持片段代码 组件中模板: 之前: <templa ...
- vue1.0和vue2.0的区别(一)
今天我们来说一说vue1.0和vue2.0的主要变化有哪些 一.在每个组件模板,不在支持片段代码 VUE1.0是: <template> <h3>我是组件</h3> ...
- vue2.0动画
相对于vue1.0来说,vue2.0的动画变化还是挺大的, 在1.0中,直接在元素中加 transition ,后面跟上名字. 而在vue2.0中,需要把设置动画的元素.路由放在<transit ...
- VUE2.0不可忽视的很多变化
今天使用webpack-sample初始一个vue-cli项目,在app.vue文件中添加了个钩子函数ready,可是ready内的事件一直不执行,检查了webpack文件和package.json也 ...
- vue2.0变化
之前有很多的vue知识总结都是围绕1.0版本实现的,下面主要总结一下2.0相对于1.0的一些变化. 组件定义 在vue1.0中,我们有使用vue.extend()来创建组件构造器继而创建组件实例,如下 ...
- Vue2.0中v-for迭代语法变化(key、index)【转】
转自:http://blog.csdn.net/sinat_35512245/article/details/53966788 Vue2.0的代码中发现 $key这个值并不能渲染成功,问题如下:但是v ...
- Vue2.0以后,有哪些变化
最近移动端项目版本升级,Vue由之前的1.0升级到2.3,那么,Vue2.0之后,有哪些细节的变化呢,现在总结如下: 1.在每个组件模板,不再支持片段代码 组件中模板: 之前: <templat ...
- Vue2.0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器
组件模板: 之前: <template> <h3>我是组件</h3><strong>我是加粗标签</strong> </templat ...
- vue2.0路由变化1
路由的步骤 1.定义组件 var Home={ template:'<h3>我是主页</h3>' }; var News={ template:'<h3>我是新闻& ...
随机推荐
- excel工具类
excel工具类 import com.iport.framework.util.ValidateUtil; import org.apache.commons.lang3.StringUtils; ...
- 一行神奇的javascript代码
写本篇文章的缘由是之前群里@墨尘发了一段js代码,如下: (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~ ...
- 每天写点python
1.收集系统信息python小程序 1 #!/usr/bin/env python 2 #A system information gathering script 3 4 import subpro ...
- 补发:用Meal Prep+模块化饮食来减肥之实操
自从上次读到仰望尾迹云 老师的模块化饮食的帖子,再了解了一些Meal Prep的内容,结合着做Meal Prep健康餐至今已经快一个半月了.整体感觉还可以,所以在这里讲一下自己的心得体会. 分为三个部 ...
- 忘记mysql root 密码修改小技巧
首先我说一下我的情况,我并不是忘记了我的root密码,只不过是我在使用phpmyadmin的时候更改密码的时候选择了如图1 的这个方法将密码加密并更改了,然后就再次登录的时候登录不上,所以对于菜鸟级的 ...
- 视图控制器的View整体上移问题
最近我朋友代码出现一个问题,我看了下,发现已经是适配iOS那时候的问题了 如果你准备将你的老的 iOS 6 app 迁移到 iOS 7 上,那么你必须注意了.当你的老的 app 在 iOS 7 设备上 ...
- 改变bootstrap-wysiwyg样式(如hide()show()等),上传图片失效
最近在试验bootstrap-wysiwyg鱼easyui的整合,两者的兼容性,可以说是基本不兼容... 但是由于需求摆在那里,再大的困难也得克服. 比如像是将bootstrap-wysiwyg放入e ...
- gulp图片压缩
gulp图片压缩 网页性能优化,通常要处理图片,尤其图片量大的时候,更需要工具来批量处理,这里使用gulp,做个简单总结 image-resize压缩尺寸 var gulp = require('gu ...
- swift与OC之间不得不知道的21点
swift与OC之间不得不知道的21点 自6月的WWDC大会上由苹果的大神Chris Lattner向我们首次展示swift至今已经大半年时间了,虽然绝大部分软件公司代码里还都见不到一丁点swif ...
- 利用SQLite_Expert实现Excel表转SqLite数据库
1.保留excel数据中需要的字段,删除无关字段. 2.将excel另存为cvs格式文件.<另存名称如:jizhan.cvs 则导入后表名即为jizhan> 3.看下图,新建数据库,命名为 ...