Vue笔记之模板语法
插值
比较常用的就是插值,插值就是{{ foobar }}用两个大括号包起来的一个变量,显示的时候会将双大括号标签替换为这个变量的值。
基本的用法就是:
<p>{{ message }}</p>
当绑定的message变量的值发生了变化时,此处也会发生相应的变化。
使用v-once的话可以使得数据绑定只发生一次,在渲染页面的时候会使用这个变量的值来替换掉双括号标签,再之后即使变量的值发生了变化这里也不会再变化了,使用方法:
<p v-once>{{ message }}</p>
但是因为v-once是添加在元素标签上的所以会对标签上的所有插值都有效,如果只想让一个元素下的某一个插值只渲染一次而不影响同标签元素下的其它插值,那么可以在变量前加个*号来表示只渲染一次:
<p v-once>{{* message }}</p>
纯HTML
比如有的时候需要将一段HTML文本直接插入到页面中,Vue提供了一个v-html指令可以在元素上渲染HTML,元素的内容将被v-html的内容替换掉,同时其中的绑定数据将失效。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue Study</title>
</head>
<body> <div id="app">
<p v-html="rawHtml">原来的值</p>
</div> <script src="../lib/vue/vue.js"></script>
<script type="text/javascript"> var app3 = new Vue({
el: '#app',
data: {
rawHtml : '<span style="color:green;">这是一些HTML片段</span>'
}, }) </script>
</body>
</html>

渲染HTML是一种不安全的行为,如果非要进行渲染的话至少也应该做过XSS转义之类的处理。
属性
双括号{{ foobar }}的形式不能在元素的属性中使用,要想将元素的属性与某个变量绑定应当使用v-bind:foo="bar",用法如下:
<button v-bind:disabled="isDisabled">A BUTTON</button>
JS表达式
绑定的插值或者v-bind并不一定是变量名,它们可以是一个简单的JS表达式,这个JS表达式的返回值会被使用,但是需要注意的是这里只可以使用一句单个的表达式。
这个是声明语句,并不是表达式,所以不会生效
{{ var foo = 'bar' }}
下面这个也不会生效,如果想使用if的话应该使用三元表达式
{{ if(foo) { bar; } }}
下面这个三元表达式会生效:
{{ foo && bar }}
指令
指令是带有v-前缀的属性,指令的职责是当表达式的值改变时将某些行为应用到DOM上。
比如:
<button v-if="canSee">A BUTTON</button>
是根据canSee的变化来切换这个按钮的可见性。
参数
一个指令能够接受一个参数,在指令后面使用:号紧跟参数来指明,比如使用v-bind绑定元素属性时v-bind:foo='bar',比如当使用v-on绑定单击事件时v-on:click。
修饰符
修饰符是使用.指明的特殊后缀,用于指出一个指令应当使用特殊方式绑定。
<form v-on:submit.prevent="onSubmit"></form>
表示当触发submit的时候调用event.preventDefault()来抑制表单提交行为。
过滤器
过滤器设计的目的是用于文本转换,故只能放在最后用于对前面表达式的结果进行处理。
过滤器函数可以在Vue的组件中使用filters来声明,传入的第一个参数是表达式的值
new Vue({
// ...
filters: {
capitalize: function (value) {
if (!value) return ''
value = value.toString()
return value.charAt(0).toUpperCase() + value.slice(1)
}
}
})
过滤器可以串联。
{{ message | filterA | filterB }}
过滤器可以接受参数
{{ message | filterA('arg1', arg2) }}
指令缩写
有些指令会被频繁的时候,如果老是写全名的话可能会嫌麻烦,Vue提供了缩写。
v-bind
全:
<span v-bind:id="id"></span>
缩写:
<span :id="id"></span>
v-on
全:
<span v-on:click="onClick"></span>
缩写:
<span @click="onClick"></span>
参考文档:
1. 官方文档 https://cn.vuejs.org/v2/guide/syntax.html#文本
.
Vue笔记之模板语法的更多相关文章
- Vue学习计划基础笔记(二) - 模板语法,计算属性,侦听器
模板语法.计算属性和侦听器 目标: 1.熟练使用vue的模板语法 2.理解计算属性与侦听器的用法以及应用场景 1. 模板语法 <div id="app"> <!- ...
- Angular 5.x 学习笔记(1) - 模板语法
Angular 5.x Template Syntax Learn Note Angular 5.x 模板语法学习笔记 标签(空格分隔): Angular Note on github.com 上手 ...
- Vue实例与模板语法
VUE基础使用方法 一.安装 1.NPM 在用 Vue 构建大型应用时推荐使用 NPM 安装[1].NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用.同时 Vue ...
- Vue介绍以及模板语法-插值
1.Vue的介绍 Vue是一套用于构建用户界面的渐进式框架. 注意:Vue是一个框架,相对于jq库来说,是由本质的区别的:https://cn.vuejs.org/ Vue不支持IE8及一下版本,因为 ...
- 前端框架VUE——数据绑定及模板语法
一.数据绑定 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: <div id="app"> {{ msg }} </di ...
- VUE 学习笔记 三 模板语法
1.插值 a.文本 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值 <span>Message: {{ msg }}</span> v-once ...
- Vue API 3模板语法 ,指令
条件# v-if# v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 truthy 值的时候被渲染. v-show# v-show 指令也是用于根据条件展示一块内容.v-show ...
- Vue详细介绍模板语法和过滤器的使用!
表达式 {{ XXX }}使用过滤器 {{ XXX | yyy}}使用多个过滤器 {{ XXX | yyy | yyy1}}过滤器带参数 {{ XXX | yyy(123,"zhuiszhu ...
- Vue.js模板语法介绍
Vue.js模板.指令 模板语法概述 1.如何理解前端渲染? 把数据填充到HTML标签中,一般我们使用Ajax将数据从后台查询出,结合模板() 2.前端渲染方式 2.1.原生js拼接字符串 使 ...
随机推荐
- QTcpServer实现多客户端连接
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QTcpServer实现多客户端连接 本文地址:https://www.techiel ...
- 将oracle数据库表使用命令的形式导入到excle文件中 亲测可用!
main.sql 中的代码 set markup html on entmap ON spool on preformat off spool D:\新建文件夹\mick\tables.xls @ge ...
- mybatis_mysql
SELECT round(avg(c.AVG_DELAY_TIME)) as AVG_DELAY FROM `result_road_saturation_day` a LEFT JOIN info_ ...
- Ubuntu 16.04出现:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/
转自:http://blog.csdn.net/zzq123686/article/details/77454066 出现错误信息: Reading package lists... Done E: ...
- POJ2823_Sliding Window
以前也碰到过这种类型的题目,以前好像做出来过,但是忘记了,这次又坑了. 题目很简单,对于从前到后每一个连续的长度为k的数字,求出这段数字中的最大的数字和最小的数字. 一开始我用离散化+树状数组来更新和 ...
- Object 接受集合里面的任意数据类型 所有的类型默认继承object
- 【bzoj5173】[Jsoi2014]矩形并 扫描线+二维树状数组区间修改区间查询
题目描述 JYY有N个平面坐标系中的矩形.每一个矩形的底边都平行于X轴,侧边平行于Y轴.第i个矩形的左下角坐标为(Xi,Yi),底边长为Ai,侧边长为Bi.现在JYY打算从这N个矩形中,随机选出两个不 ...
- BZOJ4923 K小值查询(splay)
容易想到建一棵平衡树,修改时打上标记即可.但是修改会导致平衡树结构被破坏.注意到实际上只有[k+1,2k)这一部分数在平衡树中的位置会被改变,所以对这一部分暴力修改,因为每次都会使其至少减小一半,复杂 ...
- C++解析(22):父子间的冲突
0.目录 1.同名覆盖 2.赋值兼容 3.函数重写遇上赋值兼容 4.小结 1.同名覆盖 子类中是否可以定义父类中的同名成员?如果可以,如何区分?如果不可以,为什么? 父子间的冲突: 子类可以定义父类中 ...
- 洛谷P3938 斐波那契
题目戳 题目描述 小 C 养了一些很可爱的兔子. 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行 繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子 ...