vue.js数据绑定的方法(单向、双向和一次性绑定)


Posted in Javascript onJuly 13, 2017

这两天学习了vue.js数据绑定这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记。

前言

感觉 vue 的很多方面的内容,都参考了 angular 的东西,数据绑定方面,更是赤裸裸的“抄袭”。对照来看,更有助于我们学习和理解框架本身透露出来的思想,而非框架本身。

一、单向绑定

(一)Mustache 语法,双大括号 {{}}(html 内字符串绑定)

<div id="app">
  <p>{{text}}</p>
</div>

<script>
  var app = new Vue({
    el: '#app',
    data: {
      text: 'text content'
    }
  });
</script>

但是,这种双大括号语法,只能用于 html 内部的字符串,不能用于绑定 html 的属性(如 title、disabled、checked 等),angular亦如是。

(二)v-bind 指令(html 属性绑定)

<div id="app">
  <p title={{title}}></p>
  <p v-bind:title="title">title属性绑定,html属性不能使用双大括号形式绑定,只能使用v-bind指令</p>
  <p :title="title">“:” 是 “v-bind” 的快捷方式</p>
</div>

<script>
  var app = new Vue({
    el: '#app',
    data: {
      title: 'title content'
    }
  });
</script>

某些框架如 Ember.js 支持在 html 属性上面使用双大括号语法,如 title={{title}},但是如果像上面,在 vue.js 的 html 属性上使用这种语法,框架本身就会报错,如下图所示:

vue.js数据绑定的方法(单向、双向和一次性绑定)

上面的报错,除了提示不能使用双大括号语法以外,还告诉我们可以使用 v-bind 或者 shorthand,也就是 v-bind 的缩写 :。这一点上,vue 还是和 angular 的 ng-bind 非常相似。

一次性绑定

<div id="app">
  <p v-once>{{once}}</p>
</div>

<script>
  var app = new Vue({
    el: '#app',
    data: {
      once: 'once content'
    }
  });

  app.once = 'changed content';
</script>

原本 angular 不支持一次性绑定的,而过分的使用数据绑定,将严重影响应用性能,angular 中 bindonce 这个第三方模块解决了这个问题。而 vue 通过 v-once 实现了框架本身对一次性绑定的原生支持。

## 不进行 html 转义
<div id="app">
  <p v-html="html">不转义的绑定(直接输出 html)</p>
</div>

<script>
  var app = new Vue({
    el: '#app',
    data: {
      html: '<div>div element</div>'
    }
  });
</script>

出于安全考虑,默认的数据绑定,会进行转义操作,屏蔽掉 html 标签。使用 v-html 指令,可以实现对文本内容不转义输出。这里的输出会替换掉目标标签的 innerHTML 代码中 p 标签中原本的文本将被替换,angular 中也有类似的 ng-bind-html。

双向绑定

<div id="app">
  <div>{{input}}</div>
  <textarea v-model="input"></textarea>
</div>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      input: 'two-way-binding'
    }
  });
</script>

跟 angular 一模一样,双向绑定依赖于 v-model 指令。修改 textarea 中的内容的时候, {{input}} 将让内容同步更新到对应的 div 元素中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
checkbox选中与未选中判断示例
Aug 04 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
js实现选中页面文字将其分享到新浪微博
Nov 05 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
Jan 14 Javascript
JavaScript正则表达式的分组匹配详解
Feb 13 Javascript
详解jQuery中的DOM操作
Dec 23 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
May 11 Javascript
激动人心的 Angular HttpClient的源码解析
Jul 10 Javascript
详解js创建对象的几种方法及继承
Apr 12 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 Javascript
Vue指令实现OutClick的示例
Nov 16 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 #Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
Jul 13 #Javascript
解决Vue页面固定滚动位置的处理办法
Jul 13 #Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 #Javascript
Angular如何引入第三方库的方法详解
Jul 13 #Javascript
详解如何构建Angular项目目录结构
Jul 13 #Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 #Javascript
You might like
德生PL330测评
2021/03/02 无线电
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
JS跨域总结
2012/08/30 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
python实现ID3决策树算法
2017/12/20 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
python 如何调用远程接口
2020/09/11 Python
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
体育教育毕业生自荐信
2013/11/21 职场文书
拓展培训心得体会
2014/01/04 职场文书
三年级科学教学反思
2014/01/29 职场文书
监察建议书范文
2014/03/12 职场文书
国企干部对照检查材料
2014/08/22 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL
Nginx速查手册及常见问题
2022/04/07 Servers
python单向链表实例详解
2022/05/25 Python