01Vue数据双向绑定
Vue作为前端MV*架构,Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。
Vue 的核心库只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。
另一方面,当与单文件组件和 Vue 生态系统支持的库结合使用时,Vue 也完全能够为复杂的单页应用程序提供驱动。

常见的几种数据绑定形式:
1 使用{{expression}},这种方法比较简单。但是如果网速比较慢,可能给用户看到{{expression}}的体验
,当然也可以和Angular一样加入一个v-cloak,使其在加载完后在进行显示。这种表达式还有另外两种扩展:
- {{*expression}}一次性绑定,后面即使expression中内容有变化,显示也不会发生改变。
- {{{expression}}}将expression中的内容转义成html,同时起到了js注入的问题。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="http://apps.bdimg.com/libs/vue/1.0.8/vue.js"></script> </head>
<body>
<input type="text" v-model="username" />
<p>绑定:输入是啥,输出就是啥</p>
{{username}}
<hr>
<p>一次性绑定,初始化绑定,之后即便是修改了,也不会发生变化了</p>
{{*username}}
<hr>
<p>会将绑定内容转义成html</p>
{{{username}}}
</body>
<script type="text/javascript">
new Vue({
el:"body",
data:{
username:'buffer'
}
})
</script>
</html>
2.使用标签
主要标签有v-model:进行双向数据绑定,注意这个一般是控制在input标签上,如果放到其他标签可能没有效果。
- v-text:对应上面的{{expression}}
- v-once:对应上面的{{*expression}}
- v-html:对应上面的{{{expression}}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-model</title>
<script type="text/javascript"
src="http://apps.bdimg.com/libs/vue/1.0.8/vue.js"></script> </head>
<body>
<input type="text" v-model="username" />
<p>绑定:输入是啥,输出就是啥</p>
<p v-text="username"></p>
<hr>
<p>一次性绑定,初始化绑定,之后即便是修改了,也不会发生变化了</p>
<p v-once="username"></p>
<hr>
<p>会将绑定内容转义成html</p>
<p v-html="username"></p>
<p>使用v-model进行数据绑定</p>
<p v-model="username"></p>
</body>
<script type="text/javascript">
new Vue({
el:"body",
data:{
username:'buffer'
}
})
</script>
</html>
这里可能需要注意computed这个vue属性,一般情况expression表达式会出现vue.data中的字段,但是
compute也可以出现字段,例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript"
src="http://apps.bdimg.com/libs/vue/1.0.8/vue.js"></script> </head>
<body>
<div id="box">
<p>a=>{{b}}</p>
<!-- <p>b=>{{b}}</p> -->
<input type="text" v-model="a" />
</div>
</body>
<script type="text/javascript">
// window.onload=function(){
var vm=new Vue({
data:{
a:10
},
computed:{
b:{
get:function(){
alert("调用了get方法"+this.a);
return parseInt(this.a)+2;
}
}
}
}).$mount("#box")
// }
</script>
</html>
运行这个例子的时候发现,页面在加载{{b}}是会去调用b:get 方法,我们在vue定义的数据,vue底层都回去生成一个set和get方法
这个类似面向对象语言中的bean对象。打开控制输出一下vue对象,可以找到如下图的定义。

asddsadasd
01Vue数据双向绑定的更多相关文章
- 我的angularjs源码学习之旅3——脏检测与数据双向绑定
前言 为了后面描述方便,我们将保存模块的对象modules叫做模块缓存.我们跟踪的例子如下 <div ng-app="myApp" ng-controller='myCtrl ...
- Angular数据双向绑定
Angular数据双向绑定 AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.Angul ...
- AngularJS中数据双向绑定(two-way data-binding)
1.切换工作目录 git checkout step-4 #切换分支,切换到第4步 npm start #启动项目 2.代码 app/index.html Search: <input ng-m ...
- vuejs数据双向绑定原理(get & set)
前端的数据双向绑定指的是view(视图)和model(数据)两者之间的关系:view层是页面上展示给用户看的信息,model层一般是指通过http请求从后台返回的数据.view到model的绑定都是通 ...
- 原生js实现数据双向绑定
最近接触了vue,在谈到vue等等的mvvm框架之前,先了解什么是数据双向绑定以及如何利用原生JS实现数据双向绑定 单向数据绑定 指先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成HT ...
- vue中数据双向绑定的实现原理
vue中最常见的属v-model这个数据双向绑定了,很好奇它是如何实现的呢?尝试着用原生的JS去实现一下. 首先大致学习了解下Object.defineProperty()这个东东吧! * Objec ...
- Jquery实现数据双向绑定(赋值和取值),类似AngularJS
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- 如何在原生微信小程序中实现数据双向绑定
官网:https://qiu8310.github.io/minapp/ 作者:Mora 在原生小程序开发中,数据流是单向的,无法双向绑定,但是要实现双向绑定的功能还是蛮简单的! 下文要讲的是小程序框 ...
- 西安电话面试:谈谈Vue数据双向绑定原理,看看你的回答能打几分
最近我参加了一次来自西安的电话面试(第二轮,技术面),是大厂还是小作坊我在这里按下不表,先来说说这次电面给我留下印象较深的几道面试题,这次先来谈谈Vue的数据双向绑定原理. 情景再现: 当我手机铃声响 ...
随机推荐
- 201521123051《java程序设计》 第一周学习总结
1. 本章学习总结 Java可以算是从C++发展而来的,因此Java与C语言的语法应该是比较类似的.但通过初步学习1.java语言的发展过程 2.java的特点 系统简单,功能齐备. 3.java的三 ...
- 201521123098 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 1. 在catch时需要考虑各个异常的继承关系,存在继承关系时需要先把子类异常的catch放在前面: 2. 当try ...
- Maven下载、安装和配置(二)
前言 在上篇博文[项目管理和构建]--Maven简介(一)中我们了解到maven是一种全新的项目构建方式,让我们的开发更加简单,高效.Maven主要做的是两件事: 统一开发规范与工具 统一管理jar包 ...
- WPA/WPA2加密破解
WPA/WPA2无线密码破解这里主要介绍两种方法:穷举PIN码.穷举密码 穷举PIN码(共11000种组合)破解速度快,需要一些条件(路由器支持WPS.QSS功能),路由器信号良好.无论密码多复杂,条 ...
- CentOS7安装后配置MariaDB
安装后,优先推荐先对安全设置进行配置,键入命令 sudo mysql_secure_installation 键入当前密码,当前没有,直接回车,之后跟随提示会问几个问题:设置 root 密码? / 移 ...
- JAVA多线程---ThreadLocal<E>
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px ".SF NS Text" } tips: 1 当前ThreadLocal ...
- CA认证和颁发吊销证书
摘要:涉及到网络安全这一块,想必大家都听过CA吧.像百度.淘宝.京东等这些知名网站,每年都要花费一笔money来买CA证书.但其实简单的企业内的CA认证,我们自己就可以实现,今天小编我就讲解一下怎么在 ...
- JS 数据处理技巧及小算法汇总( 一)
前言: 金秋九月的最后一天,突然发现这个月博客啥也没更新,不写点什么总觉得这个月没啥长进,逆水行舟,不进则退,前进的路上贵在坚持,说好的每个月至少一到两篇,不能半途而废!好多知识写下来也能加深一下自身 ...
- 【转】常用Maven插件
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...
- Chrome Extension in CLJS —— 搭建开发环境
前言 磨刀不误砍柴工,本篇将介绍如何搭建Chrome插件的ClojureScript开发环境. 具体工具栈:vim(paredit,tslime,vim-clojure-static,vim-fir ...