博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue.js入门
阅读量:4701 次
发布时间:2019-06-09

本文共 2643 字,大约阅读时间需要 8 分钟。

之前一直用的是jQuery,jQuery手动操作DOM导致性能不够好,因为DOM修改导致的页面重绘、重新排版!重新排版是用户阻塞的操作,同时,如果频繁重排,CPU使用率也会猛涨!

Vue.js是数据驱动的,它通过一些特殊的HTML语法,将DOM和数据绑定起来。一旦你创建了绑定,DOM将和数据保持同步,每当变更了数据,DOM也会相应地更新。

一个简单的例子:

  一个页面需要通过异步请求获取数据然后展示在页面上,用jQuery方法处理是:

$(function(){    var $jsontip = $(".car_wrap");    var strHtml = "";//存储数据的变量    $jsontip.empty();//清空内容    $.each(carlist,function(infoIndex,info){      if((infoIndex+1)%3 == 0) {        strHtml += "
"; } else { strHtml += "
"; } strHtml += "
"; strHtml += "
"; strHtml += "
型号:"+info["carsize"]+"
"; strHtml += "
座位数(人):"+info.setinfo["seating"]+"
"; strHtml += "
立即预定
"; strHtml += "
"; strHtml += "
"; }); $jsontip.html(strHtml);//显示处理后的数据 });

这样需要动态拼成DOM节点,或者用模版。

  看下Vue.js的处理方法:

  HTML中的代码为:   

是不是方便许多,这里就不再需要拼接DOM,也不会有频繁的DOM操作了。接下来看看为什么Vue.js可以这样做。

Vue.js是一个javascript MVVM(Model-View-ViewModel)库,Vue.js中ViewModel是和View以及Model交互的过程如下:

ViewModel是Vue.js的核心,它是一个Vue实例。Vue实例是作用于某一个HTML元素上的。上述代码中:

var app = new Vue({    el: '#home',    data: {      list: carlist    }  });

这就创建了一个Vue实例(ViewModel),它连接View与Model。HTML中id为home中的代码就是view, Model就是数据模型。上图中,DOM Listeners和Data Bindings看作两个工具,它们是实现双向绑定的关键。从View侧看,ViewModel中的DOM Listeners工具会帮我们监测页面上DOM元素的变化,如果有变化,则更改Model中的数据;从Model侧看,当我们更新Model中的数据时,Data Bindings工具会帮我们更新页面中的DOM元素。

双向绑定示例:

MVVM模式本身实现了双向绑定,在Vue.js中可以使用v-model指令在表单元素上创建双向数据绑定。

  

将item.carsize绑定到文本框,当更改文本框的值时,

  汽车型号:{
{item.carsize}}

这里用到的item.carsize也会更新

Vue.js的常用指令

1.v-if指令

v-if是条件渲染指令,它根据表达式的真假来删除和插入元素。举例:

   

Hello, Vue.js!

Yes!

Age: {
{ age }}

Name: {
{ name }}

在console中改变其中的值后的效果:

2.v-show指令

 v-show也是条件渲染指令,和v-if指令不同的是,使用v-show指令的元素始终会被渲染到HTML,它只是简单地为元素设置CSS的style属性。

3.v-else指令

 用v-else指令为v-ifv-show添加一个“else块”。v-else元素必须立即跟在v-ifv-show元素的后面——否则它不能被识别

4.v-for指令

v-for指令基于一个数组渲染一个列表,v-for="item in items"

5.v-bind指令

v-bind指令可以在其名称后面带一个参数,中间放一个冒号隔开,这个参数通常是HTML元素的特性(attribute),例如:

1

可以缩写为:

1

6.v-on指令 

v-on指令用于给监听DOM事件,它的用语法和v-bind是类似的,例如监听<a>元素的点击事件:<a v-on:click="doSomething">

可以缩写为:<a @click="doSomething">               

总结                                                                                                                                                                                            

  理解了Vue.js的MVVM模型和它的双向绑定机制,自己也需要从之前用jQuery手动操作DOM元素思维转向数据驱动的Vue.js

参考:

                                                                                                                                                                                                              

转载于:https://www.cnblogs.com/wj204/p/5917603.html

你可能感兴趣的文章
【信号、图像、Matlab】如何得到高斯滤波器的整数模板
查看>>
[转]Vi 教程(Unix行编辑器)
查看>>
第4周小组作业:WordCount优化
查看>>
布隆过滤去重,及分布式爬虫配置
查看>>
Redis 持久化
查看>>
Spring事务解析1-使用介绍
查看>>
简单的上传图片文件
查看>>
自定义缓存Memcache 以及Cache
查看>>
C#基础第二天-作业答案-九九乘法表-打印星星
查看>>
Svn正确的使用方法
查看>>
IOC原理
查看>>
js制作简单的计算器
查看>>
struts2源码分析之流程
查看>>
oracle数据库修改并查询当前最大连接数
查看>>
pageX,clientX,offsetX,layerX的区别
查看>>
数据库常用命令
查看>>
牛客寒假算法基础集训营5 炫酷镜子(dfs)
查看>>
IIS创建ftp服务器和ftp上传发布项目的步骤
查看>>
Puppy Linux 5.4 "Precise" 发布
查看>>
SQL附加命令生成
查看>>