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 相比,优势主要体现在:更快.更小. ...
随机推荐
- Swift 笔记汇总
Swift 3 笔记 Swift: The Basics :介绍 Swift 一些零碎的点. Swift: Basic Operators :介绍 Swift 的操作符. Functions : 介绍 ...
- iOS 用户体验之音频
早期某知名公司的应用有这么一个问题,如果我在听音乐时打开该应用,播放一段小视频,视频播放完成之后,音乐没有继续播放.这个问题被很多用户吐槽,很久以后,该公司终于修复了这个问题. 无论声音是应用体验的重 ...
- 从Socket入门到BIO,NIO,multiplexing,AIO
Socket入门 最简单的Server端读取Client端内容的demo public class Server { public static void main(String [] args) t ...
- ORACLE 监听
今天来学习一下监听的相关内容,昨晚被老大问了两个关于监听很简单的问题,但是却吞吞吐吐回答,而且有一个问题还答错了,刚刚查了下资料,才发现"驴头对了马嘴",哭笑不得. 一.监听(li ...
- linux系统命令学习-用户管理
1. 用户 a) 系统使用user id 简称UID来标志用户的唯一性 b) 用户分为三类:系统用户,根用户,普通用户 i. 普通用户 UID大于500,系统默认普通用户UID从500开始 只能操 ...
- class 选择器
class 选择器 1.class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用. 2.class 选择器在HTML元素中以class属性(即cla ...
- unittest自动化使用HTMLTestRunner的中文编码问题
1.使用unittest自动化测试框架,使用HTMLTestRunner生成测试报告,中文乱码问题! 如图 2.解决方法: 第一步:先在自己的测试脚本中添加 import sys reload(sys ...
- Rails 定时任务——whenever实现周期性任务
根据项目的进展,我们需要实现后台进行定时读取信息的功能,而最关键的实现部分是周期性功能,根据调研,决定使用whenever来实现这一功能. github:https://github.com/java ...
- C第十八次课
总结知识点: 指针 1.指针变量 指针变量的定义:例8.1 指针变量的引用:例8.2: 指针变量作为函数参数:例8.3 swap函数,例8.4 比较排序函数 2.指针数组 数组元素的指针:int *p ...
- 20155227 实现mypwd
20155227 实现mypwd 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 课堂学习笔记 实现mypwd 在 ...