title: VUE
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
::: tip Vue (读音 /vju?/,类似于 view) 是一套用于构建用户界面的渐进式的js框架,发布于 2014 年 2 月。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库(如:【【微信】】,【【微信】】,vuex)或既有项目整合。 :::
- Model:模型层,在这里表示 Ja【【微信】】 对象
- View:视图层,在这里表示 DOM(HTML 操作的元素)
- ViewModel:连接视图和数据的中间件,Vue.js 就是 MVVM 中的 ViewModel 层的实现者
在 MVVM 架构中,是不允许 数据 和 视图 直接通信的,只能通过 ViewModel 来通信,而 ViewModel 就是定义了一个Observer观察者
- ViewModel 能够观察到数据的变化,并对视图下对应的内容进行更新
- ViewModel 能够监听到视图的变化,并能够通知数据发生改变
至此,我们就明白了,Vue.js 就是一个 MVVM 的实现者,他的核心就是实现了 DOM 监听 与 数据绑定
AngularJS
简单介绍一下,AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
ReactJS
React引入了虚拟DOM(【【微信】】)的机制:在浏览器端用Ja【【微信】】实现了一套DOM API。基于React进行开发时所有的DOM构造都是通过虚拟DOM进行,每当数据变化时,React都会重新构建整个DOM树,然后React将当前整个DOM树和上一次的DOM树进行对比,得到DOM结构的区别,然后仅仅将需要变化的部分进行实际的浏览器DOM更新。
微信小程序
微信小程序的视图层和数据层就是通过MVVM进行绑定的。
- 轻量级,体积小是一个重要指标。Vue.js 压缩后有只有 20多kb (Angular 压缩后 56kb+,React 压缩后 44kb+)
- 移动优先。更适合移动端,比如移动端的 Touch 事件
- 易上手,学习曲线平稳,文档齐全
- 吸取了 Angular(模块化)和 React(虚拟 DOM)的长处,并拥有自己独特的功能,如:计算属性
- 开源,社区活跃度高
1.5.1 数据驱动
当你把一个普通的 Ja【【微信】】 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器。
这些 getter/setter 对用户来说是不可见的,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。这里需要注意的问题是浏览器控制台在打印数据对象时 getter/setter 的格式化并不同,所以你可能需要安装 【【微信】】 来获取更加友好的检查接口。
每个组件实例都有相应的 watcher 实例对象,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的 setter 被调用时,会通知 watcher 重新计算,从而致使它关联的组件得以更新。
1.5.2 组件化
- 页面上每个独立的可交互的区域视为一个组件
- 每个组件对应一个工程目录,组件所需的各种资源在这个目录下就近维护
- 页面不过是组件的容器,组件可以嵌套自由组合(复用)形成完整的页面
注意:cdn是一种加速策略,能够快速的提供js文件
其中该vue对象,绑定了页面中id是app的那个div
插值表达式的作用是在View中获得Model中的内容
Model中的内容如下:
此时,页面上将会显示"Hello world!"
此时,页面上会显示“3”,也就是数组中的第三个元素被获取。
此时,页面上会显示“20”,也就是对象中age属性的值。
注意:中间一定要有空格
此时,页面上会显示“hello vue”,也就是调用了vue对象中的【【微信】】方法,并展示了方法的返回值。
Vue.js通过加载js,实现对页面的快速渲染。vue封装的js该如何使用? 就必须了解MVVM双向数据绑定模式。Vue将视图层和数据层分离,通过MVVM建立视图层和数据层的连接。其中,插值表达式是一种连接方式,可以通过插值表达式以多种方式,快速的从数据层获取数据并展示在视图层上。数据层Vue对象,也是由很多部分组成,比如之前介绍的el,data,methods等,以及之后要介绍的mount【【微信】】等。
Vue中的分支语句v-if非常好理解,逻辑跟Java中的【【微信】】相同。v-if语句块包含以下内容:
- v-if
- v-else-if
- v-else
接下来以一个简单例子即可理解:
从这个例子可以看出,vue对象中的data提供了分支的条件。根据条件,如果是true,则v-if的内容就会显示,反之不显示。
v-if和v-show之间有着看似相同的效果,但优化上却有区别。先看下面这个例子:
通过点击“今晚彩票开奖”按钮,能切换rich的值,此时发现,v-if和v-show的显示状态都会来回切换。看起来是一样的,但通过查看控制台代码发现,v-show实际会将p标签的css样式的display属性设为none来达到隐藏的效果。
而v-if是直接在页面上添加和删除p标签来达到效果,因此v-show在反复切换的应用场景下,效率比v-if更高。
Vue中的循环关键字并没有Java的那么多,只有v-for,但用法上有多种。接下来我们来逐一介绍。
数组 对象
我们需要定义数据源,然后通过v-for来遍历数据源,再使用差值表达式输出数据。
在这个例子中,数据源提供了一个数组。视图层通过v-for来循环输出多个li标签,非常简单。
此时的i就是每次循环的循环变量 ,从0开始一直到元素个数-1
v、k、i 这几个字符可以自己定义,分别表示每次循环内容的值、键、序号。
- v: 循环中每条数据的值 小鱼、20、如花
- k: 循环中每天数据的键 username、age、girl
- i: 循环的序号,从0开始
可以清楚的看到,此时数据源是一个student数组,通过两层v-for循环,外层遍历数组中的每个student对象,内层v-for遍历每个对象的v、k、i。
页面效果如下:
Vue提供了多个关键字,能快速的将数据对象中的值绑定在视图层中。
通过v-model将标签的value值与vue对象中的data属性值进行绑定。
页面效果如下: |
---|
我们知道插值表达式是不能写在html的标签的属性内的,那如果一定要用vue中的属性作为html标签的属性的内容,就可以通过v-bind进行属性绑定。
这样,a标签内的href属性就可以使用vue对象中的属性值。
注意: v-bind也可以简写,使用冒号“:”来代替。
关于事件,要把握好三个步骤:设参、传参和接参。
从这里例子中:
- 设参:
- 传参:
- 接参:
::: tip 接下来我们来看一下VUE中如何进行事件绑定。 :::
通过配合具体的事件名,来绑定vue中定义的函数
此时,该按钮,在点击时将会调用Vue对象中定义的【【微信】】方法。
注意: v-on也可以简写,使用"@"替代。
可以使用Vue中定义好的事件修饰符,快速达到效果。查看以下例子:
当鼠标经过P标签区域内时,区域内就会显示X和Y轴的坐标,如果经过P标签内的Span标签内时,此时会调用事件属性mousemove.stop预定的效果,鼠标移动的效果将会被取消,X和Y不再显示信息。
计算:这个属性的值可以计算出来后缓存起来
属性: 本质上是一个属性,不是一个方法
8.3.1 什么是计算属性
计算属性的重点突出在 属性 两个字上(属性是名词),首先它是个 属性 其次这个属性有 计算 的能力(计算是动词),这里的 计算 就是个函数;简单点说,它就是一个能够将计算结果缓存起来的属性(将行为转化成了静态的属性),仅此而已;
8.3.2 计算属性与方法的区别
说明
- methods:定义方法,调用方法使用 currentTime1(),需要带括号
- 【【微信】】:定义计算属性,调用属性使用 currentTime2,不需要带括号;
- this.【【微信】】 是为了能够让 currentTime2 观察到这个数据变化而变化
注意:methods 和 【【微信】】 里不能重名
8.3.3 测试效果
仔细看图中说明,观察其中的差异
8.3.4 结论
调用方法时,每次都需要进行计算,既然有计算过程则必定产生系统开销,那如果这个结果是不经常变化的呢?此时就可以考虑将这个结果缓存起来,采用计算属性可以很方便的做到这一点;计算属性的主要特性就是为了将不经常变化的计算结果进行缓存,以节约我们的系统开销
操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性, 所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。 不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。
Vue的组件化设计思想借鉴了Java的面向对象思想。
Java认为万物皆对象,在Vue中,万物皆组件。
也就是说,在实际的vue项目中,以及使用了Vue框架的项目中,Vue的对象都会以组件的形式出现,能被反复使用。
要想实现组件化,需要在页面中注册组件:关于注册的方式有两种,分别是全局注册和本地注册。
9.1.1 组件的全局注册
细节:Vue.【【微信】】(“model1”, {}); 可以多次使用,如果模块名称一样的话会覆盖之前注册的。
9.1.2 组件的本地注册
vue的全局注册,也就意味着在页面的任意一个被vue绑定过的div中,都可以使用全局注册了的vue组件。
但是,如果是对vue组件进行本地注册,那么在其他被vue绑定的div中,不能使用该组件。
9.1.3 小结
这是一个完整的Vue组件。该组件包含了三个部分:template(html视图层内容)、script(Model层)、style(CSS样式)。这样封装好的组件可以被复用,也可以作为其他组件的组成部分而被封装――Java的面向对象再次体现。
特点1: template标签内,必须有且只能有一个根标签。
特点2: componet中注册的组件中的data,必须是已函数的形式。
如下:
Vue中的组件也是有生命周期的。一个Vue组件会经历:初始化、创建、绑定、更新、销毁等阶段,不同的阶段,都会有相应的生命周期钩子函数被调用。
钩子函数是跟特定的生命周期函数绑定的,执行到特定的生命周期时,如果写的有对应的生命周期函数就会自动被调用。
组件的生命周期钩子 |
---|
验证销毁:当调用了vm.$【【微信】】 则触发销毁流程
效果:
发现点击了vm销毁,但是页面上仍不变
因为虽然vm没了但是vm的工作成果还是在的
并不是vm销毁后,它的生成的dom也销毁掉,只不过是没有人帮你去管理了
cli: Command Line 命令行工具,vue-cli就是vue的命令行工具,也称之为脚手架,使用vue-cli提供的各种命令可以拉取、创建、运行我们需要使用到的框架,比如webpack、Element UI、Element Admin等等。那么要想使用vue-cli命令,需要先安装node.js。
node.js的介绍
node.js提供了前端程序的运行环境,可以把node.js理解成是运行前端程序的服务器。
node.js的安装
从官网下载安装即可: http://nodejs.cn/download/
测试node.js是否安装成功: 在DOS窗口中输入“node -v” 查看版本,如果看到版本,就表示安装成功。 |
---|
使用如下命令安装vue-cli
node自带了一个包管理工具npm => node package manager
类型于 maven
- npm/cnpm: 使用node.js的命令
- install: 安装
- vue-cli: 要安装的vue-cli
- -g: 全局安装
当出现以下界面,表示正在安装: |
---|
如果使用npm官方镜像速度比较慢,可以使用淘宝镜像来安装:
之后使用npm命令时就可以替换成cnpm
就像maven一样,vue为我们提供了一些官方项目骨架。使用【【微信】】命令可以列出当前官方提供的骨架,可以使用这些骨架来快速搭建出项目。
在my-【【微信】】目录中使用以下命令下载项目骨架
- webpack: 骨架名称
- demo1: 项目名称
过程中会出现如下界面,需要手动操作。 |
---|
出现如下界面,表示安装成功。 |
---|
进入到demo1文件夹内后,使用以下命令来运行项目。
访问http://localhost:8080,页面效果如下: |
---|
此时,项目目录及各目录介绍如下: |
---|
npm install
在运行和调试项目前,一般都需要先执行该命令,目的是安装项目运行所需要的环境。
npm run dev
以调试的方式运行项目
npm run build
生成用于项目部署所需的最小资源,生成的内容存放在build文件夹内。
在id
雷迪什单场多少分 雷迪什半场10中4砍下16分4抢断
雷迪什伤势,雷迪什季后赛,雷迪什防守怎么样,雷迪什打pg现役超巨2023-07-01 09:52:52发布于河北点灭只看此人举报流量拉满
流量拉满
亮了(1845)回复查看评论(7)最年轻的38000分先生2023-07-01 09:53:05发布于浙江点灭只看此人举报希望跟蒙克小黑一样,打出来去拿大合同
希望跟蒙克小黑一样,打出来去拿大合同
亮了(1766)回复查看评论(15)16年的Ca【【微信】】pan>2023-07-01 09:52:58发布于河南点灭只看此人举报阿鬼
阿鬼
亮了(498)回复查看评论(4)巴扎嘿xx2023-07-01 09:54:00发布于安徽点灭只看此人举报引用 @现役超巨 发表的:只看此人流量拉满
[图片]
查看更多流量拉满
啥时候搞个中锋啊,大洛要是来直接五个字
啥时候搞个中锋啊,大洛要是来直接五个字
亮了(410)回复查看评论(18)徐坤按门铃2023-07-01 09:58:55发布于新疆点灭只看此人举报引用 @最年轻的38000分先生 发表的:只看此人希望跟蒙克小黑一样,打出来去拿大合同
希望跟蒙克小黑一样,打出来去拿大合同
40+32这是位真的寒冰射手
40+32这是位真的寒冰射手
亮了(269)回复查看评论(5)湖管大中华区发言人2023-07-01 09:53:02发布于安徽点灭只看此人举报KLUTCH大获全胜
KLUTCH大获全胜
亮了(132)回复查看评论(1)怎么又拉裤子里了2023-07-01 09:56:56发布于广西点灭只看此人举报引用 @巴扎嘿xx 发表的:只看此人啥时候搞个中锋啊,大洛要是来直接五个字
啥时候搞个中锋啊,大洛要是来直接五个字
感觉湖管不会签中锋了,就算签了也只是垃圾时间上的那种球员,浓眉休息的时候给四号位顶上,然后高度差太多迫不得已再上浓眉保护篮板,然后浓眉……老剧情湖密应该懂的
感觉湖管不会签中锋了,就算签了也只是垃圾时间上的那种球员,浓眉休息的时候给四号位顶上,然后高度差太多迫不得已再上浓眉保护篮板,然后浓眉……老剧情湖密应该懂的
亮了(180)回复查看评论(11)查理CHAN2023-07-01 10:11:23发布于广东点灭只看此人举报引用 @徐坤按门铃 发表的:只看此人40+32这是位真的寒冰射手
[图片]
查看更多40+32这是位真的寒冰射手
主要是有防守潜力,现在锋线高度充裕
主要是有防守潜力,现在锋线高度充裕
亮了(83)回复查看评论(5)虎扑JR0【【QQ微信】】2023-07-01 09:58:58发布于江西点灭只看此人举报引用 @怎么又拉裤子里了 发表的:只看此人感觉湖管不会签中锋了,就算签了也只是垃圾时间上的那种球员,浓眉休息的时候给四号位顶上,然后高度差太多迫不得已再上浓眉保护篮板,然后浓眉……老剧情湖密应该懂的
[图片]
查看更多感觉湖管不会签中锋了,就算签了也只是垃圾时间上的那种球员,浓眉休息的时候给四号位顶上,然后高度差太多迫不得已再上浓眉保护篮板,然后浓眉……老剧情湖密应该懂的
再说下去不敢想象了
再说下去不敢想象了
亮了(82)回复查看评论(1)Jaynjj2023-07-01 10:34:52发布于上海点灭只看此人举报引用 @徐坤按门铃 发表的:只看此人40+32这是位真的寒冰射手
[图片]
查看更多40+32这是位真的寒冰射手
给范德彪一些压力
给范德彪一些压力
亮了(49)回复23_6_James2023-07-01 10:01:27发布于四川点灭只看此人举报引用 @巴扎嘿xx 发表的:只看此人啥时候搞个中锋啊,大洛要是来直接五个字
啥时候搞个中锋啊,大洛要是来直接五个字
加布要不再回来镀个金?
加布要不再回来镀个金?
亮了(49)回复查看评论(3)那一缕紫金CurrySon2023-07-01 10:01:57发布于山西点灭只看此人举报引用 @怎么又拉裤子里了 发表的:只看此人感觉湖管不会签中锋了,就算签了也只是垃圾时间上的那种球员,浓眉休息的时候给四号位顶上,然后高度差太多迫不得已再上浓眉保护篮板,然后浓眉……老剧情湖密应该懂的
[图片]
查看更多感觉湖管不会签中锋了,就算签了也只是垃圾时间上的那种球员,浓眉休息的时候给四号位顶上,然后高度差太多迫不得已再上浓眉保护篮板,然后浓眉……老剧情湖密应该懂的
才9人大名单,你别急啊。TT比永博还在呢,等裴总封神!明天还有大的!
才9人大名单,你别急啊。TT比永博还在呢,等裴总封神!明天还有大的!
亮了(43)回复查看评论(2)8月24日湖人总冠军2023-07-01 10:17:57发布于湖南点灭只看此人举报引用 @GV2517 发表的:只看此人前年也打了,季后赛被布克杀疯了,掉价了(主要是波普和浓眉伤了)
[图片]
查看更多前年也打了,季后赛被布克杀疯了,掉价了(主要是波普和浓眉伤了)
前面一千多,丹尼格林换的
前面一千多,丹尼格林换的
亮了(35)回复查看评论(1)盖撕太保2023-07-01 10:30:20发布于安徽点灭只看此人举报引用 @巴扎嘿xx 发表的:只看此人啥时候搞个中锋啊,大洛要是来直接五个字
啥时候搞个中锋啊,大洛要是来直接五个字
大洛不可能来的,当年那么卑微的走,现在还想迎回来,太难了
大洛不可能来的,当年那么卑微的走,现在还想迎回来,太难了
亮了(36)回复库父Wiggins2023-07-01 10:06:25发布于陕西点灭只看此人举报引用 @最年轻的38000分先生 发表的:只看此人希望跟蒙克小黑一样,打出来去拿大合同
希望跟蒙克小黑一样,打出来去拿大合同
蒙克进攻比鬼哥强多了,防守差点
蒙克进攻比鬼哥强多了,防守差点
亮了(36)回复查看评论(2)曼巴与国王2023-07-01 10:34:09发布于贵州点灭只看此人举报引用 @徐坤按门铃 发表的:只看此人40+32这是位真的寒冰射手
[图片]
查看更多40+32这是位真的寒冰射手
感觉湖人进攻效率明年会进一步降低…
感觉湖人进攻效率明年会进一步降低…
亮了(30)回复查看评论(2)路飞【【QQ微信】】2023-07-01 10:04:57发布于安徽点灭只看此人举报引用 @虎扑雨时晴 发表的:只看此人帮湖人打了两年底薪了该拿钱了
帮湖人打了两年底薪了该拿钱了
不是一年?
不是一年?
亮了(30)回复查看评论(1)一生追随詹老汉2023-07-01 10:37:10发布于陕西点灭只看此人举报引用 @曼巴与国王 发表的:只看此人感觉湖人进攻效率明年会进一步降低…
感觉湖人进攻效率明年会进一步降低…
有射手文森特
有射手文森特
亮了(25)回复查看评论(2)怎么又拉裤子里了2023-07-01 10:04:54发布于广西点灭只看此人举报引用 @那一缕紫金CurrySon 发表的:只看此人才9人大名单,你别急啊。TT比永博还在呢,等裴总封神!明天还有大的!
才9人大名单,你别急啊。TT比永博还在呢,等裴总封神!明天还有大的!
但是市面上没有什么什么好的中锋了,你让这两个人打20-25分钟基本不可能
但是市面上没有什么什么好的中锋了,你让这两个人打20-25分钟基本不可能
亮了(21)回复查看评论(3)小阿郭詹2023-07-01 09:57:26发布于江苏点灭<
..怎样进淘宝群聊,怎样进淘宝群聊,微信投票群互助群的二维码, 一直致力于2023年 618淘宝狂欢节淘宝微信互帮互助群怎么加入,2023 618天猫狂欢节怎样进淘宝群聊,现有116个群,还在持续增长中,总人数超过上万人。版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。