全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

这两天学习了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 属性上使用这种语法,框架本身就会报错,如下图所示:

上面的报错,除了提示不能使用双大括号语法以外,还告诉我们可以使用 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 元素中。

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


# vue.js数据绑定  # vue数据绑定  # vue双向数据绑定  # vue单向以及双向数据绑定方式(v-bind和v-model的使用)  # 深入了解Vue中单向数据流的原理与管理  # vue单向数据流的深入讲解  # vue单向数据绑定和双向数据绑定方式  # 绑定  # 报错  # 这一  # 就会  # 也有  # 这个问题  # 很重要  # 将被  # 告诉我们  # 不支持  # 可以使用  # 可以实现  # 所示  # 而非  # 第三方  # 这两天  # 点上  # 快捷方式  # 大家多多  # 如下图 


相关文章: 建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  图册素材网站设计制作软件,图册的导出方式有几种?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  ,巨量百应是干嘛的?  制作网站的公司有哪些,做一个公司网站要多少钱?  如何续费美橙建站之星域名及服务?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  建站主机如何选?高性价比方案全解析  如何在万网自助建站平台快速创建网站?  再谈Python中的字符串与字符编码(推荐)  如何在阿里云虚拟主机上快速搭建个人网站?  如何通过西部数码建站助手快速创建专业网站?  如何在阿里云ECS服务器部署织梦CMS网站?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何配置FTP站点权限与安全设置?  存储型VPS适合搭建中小型网站吗?  如何在IIS中新建站点并配置端口与IP地址?  建站10G流量真的够用吗?如何应对访问高峰?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何确认建站备案号应放置的具体位置?  如何通过山东自助建站平台快速注册域名?  如何快速上传建站程序避免常见错误?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  建站主机系统SEO优化与智能配置核心关键词操作指南  如何在万网开始建站?分步指南解析  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  网页设计网站制作软件,microsoft office哪个可以创建网页?  网站设计制作企业有哪些,抖音官网主页怎么设置?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  宝塔新建站点报错如何解决?  香港网站服务器数量如何影响SEO优化效果?  如何破解联通资金短缺导致的基站建设难题?  制作营销网站公司,淘特是干什么用的?  如何在新浪SAE免费搭建个人博客?  如何在服务器上三步完成建站并提升流量?  Android滚轮选择时间控件使用详解  网站网页制作专业公司,怎样制作自己的网页?  建站主机核心功能解析:服务器选择与网站搭建流程指南  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  建站之星北京办公室:智能建站系统与小程序生成方案解析  如何快速搭建高效香港服务器网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。