【vue.js权威指南】读书笔记(第二章)
【第2章:数据绑定】
- 何为数据绑定?答曰:数据绑定就是将数据和视图相关联,当数据发生变化的时候,可以自动的来更新视图。
- 数据绑定的语法主要分为以下几个部分:
- 文本插值:文本插值可以说是最基本的形式了。在vue.js中,使用了Mustache的语法,类似于Angular中的{{}}双大括号的形式。代码如下
<span>Text:{{text}}</span>
当然,如果你只想渲染一次数据,而对以后的数据不再关心的话,你也可以使用下面的语法:
<span>Text:{{*text}}</span>
如果你的值是html片段的话,你也可以使用三个大括号的形式来进行绑定,如下所示:
<span>Text:{{{logo}}}</span>
logo:'<span>ABCD</span>'此外,双大括号标签还可以放在html标签的内部,也是会被解析出来。如下:
<span data-id="{{id}}"></span>
总之,vue.js提供了一系列的文本渲染的方式,足够我们应对日常的模版渲染情况。但是必须注意的是,vue的指令和自身特性内是不可以插值的,如果用错了地方,vue.js会发出警告。
- 表达式:Mustache标签可以接受表达式形式的值,表达式可以由JavaScript表达式和过滤器构成。当然,过滤器可以没有,也可以有多个。
- 在这里,我们必须了解表达式的含义,一定要区分表达式和语句。所谓表达式,就是各种数值,变量,运算符的综合体。简单的表达式可以是常量或者变量名称,而表达式的值则是它的运算结果。代码如下:
<!--js表达式-->
{{center/100}}
{{true:1:0}}
{{example.split(",")}} <!--无效的示例。因为它们都是语句-->
{{var logo = "ABCD"}}
{{if(true) return "EFGH"}} //条件控制语句是不支持的,可以使用三元式 - vue.js中的过滤器类似于pipe,即管道的意思。可以将过滤器添加到表达式后面,代码如下:
{{example | toUpperCase}} {{example | filterA | filterB}}
不仅如此,过滤器还支持传入参数,代码如下:
{{example | filter a b}}
//这里的a和b都是参数,使用空格来分隔开vue.js中内置的过滤器远不止这些,想要了解更多?我会加快看书,加快更新,大家喝杯茶,稍等片刻。^_^
- 在这里,我们必须了解表达式的含义,一定要区分表达式和语句。所谓表达式,就是各种数值,变量,运算符的综合体。简单的表达式可以是常量或者变量名称,而表达式的值则是它的运算结果。代码如下:
- 指令:就像Angular中的ng-*指令,vue.js中也有自己的指令,只不过是v-*而已,怎么样?是不是很简单?有Angular基础的同学,掌握起来都是分分钟的事。指令的值限定为绑定表达式。而指令的作用正是当表达式的值发生变化的时候,将这个变化也反映到DOM上。
- 那么问题来了,啥叫绑定表达式?书中所说,绑定表达式,就是JavaScript表达式和过滤器。说白了,就是加了过滤器的表达式,其实质和表达式是一个概念。代码如下:
<div v-if="show"></div>
这段代码的意思就是:当show为true的时候,展示这个div;当show为false的时候,不展示这个div。这也印证了上面所说的指令的作用,就是根据它的值,来改变DOM。
- 此外,在指令和绑定表达式中间,我们还可以插入一个参数,这个参数和指令之间,使用:来进行分隔。如v-bind指令,代码如下:
<a v-bind:href = "url"></a> <div v-bind:click="action"></div>
- 那么问题来了,啥叫绑定表达式?书中所说,绑定表达式,就是JavaScript表达式和过滤器。说白了,就是加了过滤器的表达式,其实质和表达式是一个概念。代码如下:
- 分隔符:vue.js中的数据绑定的语法被设计为可配置的。如果大家不习惯Mustache的双大括号语法{{}},完全可以自己设置。
- 我们可以在vue.config中配置绑定的语法。vue.config是一个对象,包含了vue.js的所有全局的配置,可以在vue实例化之前来修改其中的属性。分隔符在vue.config中的源码定义如下:
let delimiters = ['{{','}}'] let unsafeDelimiters = ['{{{','}}}']
我们可以通过配置vue.config.delimiters的值来改变默认的文本插值的分隔符,如下:
Vue.config.delimiters = ['<%','%>']
这样我们的文本插值语法就不再是双大括号语法,而是<%example%>这样的语法了。html插值的分隔符与此类似。
- 我们可以在vue.config中配置绑定的语法。vue.config是一个对象,包含了vue.js的所有全局的配置,可以在vue实例化之前来修改其中的属性。分隔符在vue.config中的源码定义如下:
- 第二章:数据绑定就先总结到这里,有什么错误,还请大家在评论里指出,我会第一时间更正。3Q^_^
- 文本插值:文本插值可以说是最基本的形式了。在vue.js中,使用了Mustache的语法,类似于Angular中的{{}}双大括号的形式。代码如下
【vue.js权威指南】读书笔记(第二章)的更多相关文章
- 《JS权威指南学习总结--第二章词法结构》
第二章词法结构 内容要点: 一.注释 1. //表示单行注释 2. /*这里是一段注释*/ 3.一般编辑器里加注释是:选中要加注释的语句,按 ctrl+/ 二.直接量 所谓直接量,就是程序中直接使用的 ...
- JS权威指南读书笔记(一)
第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格. 第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区 ...
- JS权威指南读书笔记(七)
第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义 a 事件类型(event type) b 事件目标(event target) target ...
- JS权威指南读书笔记(六)
第十五章 脚本化文档 1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子 ...
- JS权威指南读书笔记(五)
第十三章 Web浏览器中的JavaScript 1 在Html文档中嵌入客户端4种JS代码方法 a 内联方式,放置在<script>标签之间 b 放置在<script ...
- JS权威指南读书笔记(四)
第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符 a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字 ...
- JS权威指南读书笔记(三)
第七章 数组 1 数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快的多. 2 数组直接量的语法允许有可选的结尾的逗号,故[ ; ; ]只有两个元素而非三个. 3 调用构 ...
- JS权威指南读书笔记(二)
第四章 表达式和运算符 1 new调用构造函数的过程 a 创建一个新的空对象 b 设置空对象的_proto_指向构造函数原型prototype c 将这个新对象当做this的值 ...
- HTTP权威指南读书笔记——第一章(HTTP概述)
1.HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案,HTTP是应用层协议,无需关心网络通信的细节,细节交给了传输层协议TCP/ ...
- 【vue.js权威指南】读书笔记(第一章)
最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.j ...
随机推荐
- Java笔记:对象,方法,类
1.数据类型(类) 对象名; 这里要求数据类型必须为复合数据类型,基本数据类型声明的结构只能称为变量,而不能称为对象. 对象的初始化 对象名= new 构造方法(参数); 2.方法: 访问控制符 [修 ...
- 【转】Java开发中JDBC连接数据库代码和步骤总结
(转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个 ...
- Lattice FPGA 板子 调试笔记
最近在调试LATTICE FPGA 做的视频板子,颇不顺利,所以记录下来作为以后的参考: 1.FPGA的IO口不是所有的都是双向的,有些有特殊作用的是单向的. 在查阅 LatticeECP3-17E ...
- 【Java EE 学习 16 上】【dbcp数据库连接池】【c3p0数据库连接池】
一.回顾之前使用的动态代理的方式实现的数据库连接池: 代码: package day16.utils; import java.io.IOException; import java.lang.ref ...
- Log4j框架
一.Log4j基本使用方法 Log4j由三个重要的组件构成:日志信息的优先级 Loggers,日志信息的输出目的地 Appenders,日志信息的输出格式 Layouts .日志信息的优先级从高到低 ...
- 【oracle】oracle表结构导出到Word
因为需要写数据库文档,所以需要把数据库里边的表结构在word中用表格列出来,之前一直用powerdesigner,感觉有些麻烦,后来在网上找到了一段sql语句,经测试完全符合我的需求,不敢独享,语句如 ...
- Swagger - 前后端分离后的契约
前后端分离 按照现在的趋势,前后端分离几乎已经是业界对开发和部署方式所达成的一种共识.所谓的前后端分离,并不是传统行业中的按部门划分,一部分人只做前端(HTML/CSS/JavaScript等等),另 ...
- linux设备驱动
http://blog.csdn.net/bob_fly1984/article/details/8820670 struct ov5640_data { struct ov5640_platf ...
- ZeroMQ接口函数之 :zmq_getsockopt – 获取ZMQ socket的属性
ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html 本文地址 :http://www.cnblogs.com/fengbo ...
- JavaScript 一种轻量级的编程语言
JavaScript 一种轻量级的编程语言 作为一名计算机应用专业的学生,大一上学期开始接触了网页设计和制作,刚开始时感觉做网页很不错,简单地写几行代码就能做出效果来,当时感觉很兴奋,渐渐的喜欢上它 ...