vue2与vue1的区别
在前面的学习过程中我们已经对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的区别的更多相关文章
- vue1.0 与 Vue2.0的一些区别 及用法
		
1.Vue2.0的模板标记外必须使用元素包起来: eg:Vue1.0的写法 <!DOCTYPE html> <html> <head> <meta chars ...
 - vue2与vue3的区别
		
template <template> <div class="wrap"> <div>{{ num }}</div> <Bu ...
 - vue2和vue3的区别?
		
vue2和vue3的主要区别在于以下几点: 1.生命周期函数钩子不同 2.数据双向绑定原理不同 3.定义变量和方法不同 4.指令和插槽的使用不同 5.API类型不同 6.是否支持碎片 7.父子组件之间 ...
 - vuex 快速入门( 基于vue2.0,vue1.0未知可否)
		
1.原理概述 2.用户登录例子解析: 由上图可以看到: 1.组件的数据是username,我们把它以name放在state中: 2.更改name发生在mutations的回调里,事件名字是showUs ...
 - vue2和vue3的区别
		
一.常用命令 vue -V 查看本地 vue 版本 二.官方文档 3.0:https://cli.vuejs.org/zh/ 三.创建文件 3.0:vue create 进入工程文件夹,创建项目. 2 ...
 - Vue2源码分析-逻辑梳理
		
很久之前就看完vue1,但是太懒就一直没写博客,这次打算抽下懒筋先把自己看过了记录下来,否则等全部看完,估计又没下文了 看源码总需要抱着一个目的,否则就很难坚持下去,我并没做过vue的项目,我几乎很少 ...
 - Vue2.0原理-模板解析
		
下面这段代码,vue内部做了什么操作?我去源码里面找找看 new Vue({ el: '#app' }) 入口 vue 的入口文件在 src/core/instance/index.js, 里面一进来 ...
 - vue2.0中怎么获取元素
		
在元素上添加 v-el:food-wrapper (不用驼峰的写法) vue1版本 报错: vue2版本 (vue2把vue1中的 v-el 改为了 ref vue1 v-el:foods-wrapp ...
 - vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松
		
vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...
 
随机推荐
- new Date的兼容性问题
			
标准浏览器下正常,结果ie.老版本的IOS微信公众号不支持,搞不懂,原来有兼容性问题 //beginData格式为'yyyy-mm-dd' 1 var _date = new Date(Date.pa ...
 - 【数据库】数据库的锁机制,MySQL中的行级锁,表级锁,页级锁
			
转载:http://www.hollischuang.com/archives/914 数据库的读现象浅析中介绍过,在并发访问情况下,可能会出现脏读.不可重复读和幻读等读现象,为了应对这些问题,主流数 ...
 - 【BootStrap】 布局组件 II
			
BootStrap 布局组件 II ■ 分页 BS中通过.pagination的ul元素来实现一个分页集合,一个典型的分页如下: <ul class="pagination" ...
 - 基于PLC-C#串口通讯,温度检测和转速监控的c#/.Net实现。
			
我司为五金加工企业,其中有一条喷涂车间和流水线,客户要求能实时监控炉温温度.流水线速,并设置上下限值,达到上下限时报警. 开始考虑过USB的温度采集器,但是却没有找到带USB的光电开关,并且线路长度受 ...
 - java中equals与==的区别
			
http://blog.csdn.net/zfrong/article/details/4290904
 - android:baselineAligned属性
			
对于可以显示文字的View(如TextView,Button等),它的baseline 指的是这个UI控件中文字Text的baseline 到UI控件顶端的偏移值,可以通过View 的getBasel ...
 - C语言——第一次作业(2)
			
1.写程序证明p++等价于(p)++还是等价于*(p++)? #include <stdio.h> int main() { int *p,a=5; p = &a; printf( ...
 - vmware ubuntu蓝屏
			
ctrl+alt+f4 sudo apt-get update sudo apt-get upgrade sudo apt-get install xserver-xorg-lts-utopic su ...
 - 小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口
			
有些人,学习一样东西时候,喜欢现成的例子.很多人学习一门技术,都喜欢现成的例子开始,比如学单片机的啊,最开始都是修改的例子吧,学语言的也是.最开始都是模仿.这个年头看书上的理论知识太浪费时间了.所以啊 ...
 - vue的简单tab
			
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...