區別:1、VUE2.0中必須用根元素包裹所有的程式碼,VUE1.0中不用。 2.組件定義方式不同。 3.生命週期函數不同。 4、vue2.0將vue1.0中所有自帶的過濾器都刪除了,vue2.0要使用過濾器需要自訂,而vue1.0不用。
本教學操作環境:windows7系統、vue2.9.6版,DELL G3電腦。
一、在每個元件模板,不在支援片段程式碼
VUE1.0是:
<template>
<h3>我是组件</h3><strong>我是加粗标签</strong>
</template>
登入後複製
VUE2. 0:必須有根元素,包覆所有的程式碼
<template id="aaa">
<div>
<h3>我是组件</h3>
<strong>我是加粗标签</strong>
</div>
</template>
登入後複製
二、元件定義方式不同
VUE1.0定義元件的方式有:
Vue.extend 這種方式,在2.0裡面有,但是有一些改動
Vue.component(组件名称,{ 在2.0继续能用
data(){}
methods:{}
template:
});
登入後複製
VUE2.0定義組件的方式則更為簡單
var Home={
template:'' -> 相当于Vue.extend()
};
登入後複製
三、生命週期的變化
1、1.0的生命週期:
##週期 | 解釋 |
init | 元件剛剛被創建,但Data、method等屬性還沒被計算出來 |
created | 元件建立已經完成,但DOM還沒被產生出來 |
beforeCompile | 範本編譯之前 |
compiled | 模板編譯之後 |
#ready | 元件準備(平常用得較多) |
attached | 在vm.$el 插入DOM時呼叫 |
##detached在vm.$el從DOM 刪除時呼叫 | |
beforeDestory#元件銷毀之前 | | ##destoryed
#元件銷毀之後 | |
下圖是官方關於1.0生命週期的流程圖:
# #2、2.0的生命週期
#解釋 | | ##beforeCreate
元件剛剛被創建,但Data、method等屬性還沒被計算出來 | #created | 元件建立已經完成,但DOM還沒被生成出來
| beforeMount | 模板編譯之前
| mounted | 模板編譯之後,元件準備
| beforeUpdate | 元件更新之前(資料等變動的時候)
| updated | 元件更新之後(資料等變動的時候)
| activated | for keep-alive,元件被啟動時呼叫
| deactivated | for keep-alive,元件被移除時呼叫
| beforeDestory | 元件銷毀之前
| destoryed | 元件銷毀之後
| 下图是官方关于2.0生命周期的流程图:
借用一位大神的图来总结他们的变化:
2.0生命生命周期变化感觉变得更加语义化一点(有规律可寻,更好记了),而且增加了beforeUpdate、updated、activated、deactivated,删除了attached、detached。
四、过滤器
2.0将1.0所有自带的过滤器都删除了,也就是说,在2.0中,要使用过滤器,则需要我们自己编写,以下是一个自定义过滤器示例,
Vue.filter('toDou',function(n,a,b){
return n<10?n+a+b:''+n;
});
登入後複製
如果想展示JSON数据,不需要调用过滤器了,框架会自动帮我们解析出来;
2.0过滤器的传参方式不是以前的方式,是以函数传参的方式,下面示例:
之前调用: {{msg | mimi '12' '5'}}
现在调用: {{msg | mimi('12','5')}}
登入後複製
五、循环
刚学vue1.0的人可能会碰到一个错误信息:
这里提示我们要使用tranck-by=”$index”,这个属性也可以帮我们提高for循环的性能,而在2.0,使用重复数据将不会报错,同时也去掉了一些隐式变量如:index、key,那我们如果要用到这些数据则可以通过ES6的语法来获取
v-for="(val,index) in array"
登入後複製
关于整数循环,1.0的整数循环是从0开始的,2.0的整数循环是从1开始的,下面对比:
//HTML代码
<ul id='box'>
<li v-for='val in 5' v-text='val'></li>
</ul>
登入後複製
运行结果:
四、片段代码
编写template的时候,2.0必须要用一个根元素(如p)将代码片段包裹起来,否则报错。
之前: 在1.0使用时完全没问题
<template>
<h3>我是组件</h3><strong>我是加粗标签</strong>
</template>
现在: 必须有根元素,包裹住所有的代码
<template id="aaa">
<div>
<h3>我是组件</h3>
<strong>我是加粗标签</strong>
</div>
</template>
登入後複製
相关推荐:《vue.js教程》
以上是vuejs1.0與2.0的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2023-04-26 17:59:18
-
2023-04-26 17:47:48
-
2023-04-26 17:41:42
-
2023-04-26 17:37:05
-
2023-04-26 17:31:25
-
2023-04-26 17:27:32
-
2023-04-25 19:57:58
-
2023-04-25 19:53:11
-
2023-04-25 19:49:11
-
2023-04-25 19:41:54