在前面的学习过程中我们已经对vue1有了一定的了解,下面我们来学习一下vue2,看一下vue1与vue2有什么区别。

区别1:

  在vue2中使用v-for指令时它可以添加重复的内容,就像可以添加相同的留言内容,下面我们来看一下

  在写代码的时候首先要引入的是vue2js文件。

  html代码:  

<div id="box">
<input type="button" value="添加" @click="add()">
<ul>
<li v-for="item in arr">{{item}}</li>
</ul>
</div>

  js代码:

    

 window.onload=function () {
new Vue({
el:"#box",
data:{
arr:[1,2,3,4,5,6]
},
methods: {
add:function () {
this.arr.unshift("1")
}
}
})
}

  但是,还有一点不同的地方就是没有$index了,在vue1中是有的,但我们可以手动添加$index

  

<div id="box">
<input type="button" value="添加" @click="add()">
<ul>
<li v-for="(val,index) in arr">{{val}}------->{{index}}</li>
</ul>
</div>

 区别2:

    我们在vue2中跟vue1中有一个很大的区别就是没有过滤器!!!我们用着过滤器的时候要要自己定义。

 区别3:

      再者我们在使用组件之间的通讯时也不同,下面我们来看一下:

 html代码:

<div id="div">
我是父组件---->{{emitData.msg}}<br>
<child-com :m="emitData"></child-com>
</div>
</body>
</html>
<template id="tpl">
<div>
<span>我是子组件----></span>
{{m.msg}}<br>
<input type="button" value="change" @click="change()"/>
</div>
</template>

  js代码:

  

 window.onload = function(){
new Vue({
el:"#div",
data:{
emitData:{ //写为json 原理:js中对象的引用
msg:"我是父组件数据"
}
},
components:{
'child-com':{
props:['m'],
template:"#tpl",
methods:{
change(){
this.m.msg='变了';
}
}
}
}
})
}

 这不是vue2中的方法但是我们可以使用这种方法来解决问题。 

区别4: 

  有一个最基本的区别就是我们在定义模板的时应该把模板的东西用一个大盒子包起来。

<template id="tpl">
<div><h3>3333333</h3><strong>strong</strong></div>
</template>

 区别5: 

    对于生命周期也是有所不同的,我们vue2中的生命周期是这样的

    

 window.onload=function () {
new Vue({
el:"#box",
data:{
msg:"lalalal"
},
beforeCreate () {
alert("实例创建之前")
},
created() {
alert("实例创建完成")
},
beforeMount() {
alert("数据编译之前")
},
mounted() {
alert("数据编译完成")
},
beforeUpdate:function () {
console.log("数据更新之前")
},
updated:function () {
console.log("数据解析完成")
},
beforeDestroy:function () {
alert("数据销毁之前")
},
destroyed:function () {
alert("数据销毁完成")
}
})
}

  最后我们来看一下单一事件中管理组件通讯

html:

<div id="div">
<com-a></com-a>
<com-b></com-b>
<com-c></com-c>
</div>

  js代码:

<script>
window.onload = function(){
const event=new Vue;
const A={
template:`
<div>
<span>我是A组件---------></span>{{msg1}}
<input type="button" value="把a组件的数据传给c" @click="send()">
</div>
`,
data(){
return{
msg1:"我是A组件的数据"
}
},
methods:{
send(){
event.$emit("a-data",this.msg1)
}
}
};
const B={
template:`
<div>
<span>我是B组件---------></span>{{msg2}}
<input type="button" value="把b组件的数据传给c" @click="send()">
</div>
`,
data(){
return{
msg2:"我是B组件的数据"
}
},
methods:{
send(){
event.$emit("b-data",this.msg2)
}
}
};
const C={
template:`
<div>
<h3>我是C组件</h3>
<span>接收到A的数据--->{{a}}</span><br/>
<span>接收到B的数据--->{{b}}</span>
</div>
`,
data(){
return{
a:"a",
b:"b"
}
},
mounted(){
event.$on("a-data",function (a) {
this.a=a;
}.bind(this));
event.$on("b-data",function (b) {
this.b=b
}.bind(this))
} };
new Vue({
el:"#div",
data:{
msg:"我是父组件数据"
},
components:{
"com-a":A,
"com-b":B,
"com-c":C
}
})
}
</script>

  以上就我所了解的vue2。

vue2与vue1的区别的更多相关文章

  1. vue1.0 与 Vue2.0的一些区别 及用法

    1.Vue2.0的模板标记外必须使用元素包起来: eg:Vue1.0的写法 <!DOCTYPE html> <html> <head> <meta chars ...

  2. vue2与vue3的区别

    template <template> <div class="wrap"> <div>{{ num }}</div> <Bu ...

  3. vue2和vue3的区别?

    vue2和vue3的主要区别在于以下几点: 1.生命周期函数钩子不同 2.数据双向绑定原理不同 3.定义变量和方法不同 4.指令和插槽的使用不同 5.API类型不同 6.是否支持碎片 7.父子组件之间 ...

  4. vuex 快速入门( 基于vue2.0,vue1.0未知可否)

    1.原理概述 2.用户登录例子解析: 由上图可以看到: 1.组件的数据是username,我们把它以name放在state中: 2.更改name发生在mutations的回调里,事件名字是showUs ...

  5. vue2和vue3的区别

    一.常用命令 vue -V 查看本地 vue 版本 二.官方文档 3.0:https://cli.vuejs.org/zh/ 三.创建文件 3.0:vue create 进入工程文件夹,创建项目. 2 ...

  6. Vue2源码分析-逻辑梳理

    很久之前就看完vue1,但是太懒就一直没写博客,这次打算抽下懒筋先把自己看过了记录下来,否则等全部看完,估计又没下文了 看源码总需要抱着一个目的,否则就很难坚持下去,我并没做过vue的项目,我几乎很少 ...

  7. Vue2.0原理-模板解析

    下面这段代码,vue内部做了什么操作?我去源码里面找找看 new Vue({ el: '#app' }) 入口 vue 的入口文件在 src/core/instance/index.js, 里面一进来 ...

  8. vue2.0中怎么获取元素

    在元素上添加 v-el:food-wrapper (不用驼峰的写法) vue1版本 报错: vue2版本 (vue2把vue1中的 v-el 改为了 ref vue1 v-el:foods-wrapp ...

  9. vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松

    vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...

随机推荐

  1. [Oracle]UNIX与Windows 2000上Oracle的差异(I)

    作者:Ian Adam & David Stien, SAIC Ltd 日期:19-Dec-2003 出处:http://www.dbanotes.net翻译:Fenng ---------- ...

  2. mysql5.6 绿色免安装版 安装详解

    一.安装版本简介 MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的.很多人下了zip格式的解压发现没有setup.exe, ...

  3. 研华ADAM 4000系列型号枚举值

    public enum Adam4000Type    {        Non = 0,        Adam4011 = 4011,        Adam4012 = 4012,        ...

  4. 每天学习点jquery

    一.jquery选择器 1.根据给定的ID匹配一个元素(如果选择器中包含特殊字符,可以用两个斜杠转义)id选择器 举例:html代码 <div id="notMe">& ...

  5. springMVC框架+POI组件导出Excel

    目的:访问url(http://localhost:8080/POIOutputExcel/outputexcel.do)实现excel导出,效果图如下: 文件目录(配置文件就不多说了,跟前面的随笔一 ...

  6. JAVA基础之字符串和面向对象

    * [String 类] * 1. String类位于java.lang包中,java.lang是java的语言包,使用时无须导包,自动导入. * * 2.拿到一个字符串对象: * ①字面量声明:St ...

  7. Visual Studio 2017 Key 激活码

    Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Visual Studio 2017(VS201 ...

  8. python全栈学习--day8

    一,文件操作基本流程. 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众 ...

  9. Excel导出不同浏览器下文件名乱码问题

    解决思路:通过请求头中的User-Agent参数中的信息来区分不同浏览器 public Object exportPz(HttpServletRequest request, HttpServletR ...

  10. 有序的map LinkedHashMap

    HashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方.所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟put的顺 ...