插值

比较常用的就是插值,插值就是{{ 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笔记之模板语法的更多相关文章

  1. Vue学习计划基础笔记(二) - 模板语法,计算属性,侦听器

    模板语法.计算属性和侦听器 目标: 1.熟练使用vue的模板语法 2.理解计算属性与侦听器的用法以及应用场景 1. 模板语法 <div id="app"> <!- ...

  2. Angular 5.x 学习笔记(1) - 模板语法

    Angular 5.x Template Syntax Learn Note Angular 5.x 模板语法学习笔记 标签(空格分隔): Angular Note on github.com 上手 ...

  3. Vue实例与模板语法

    VUE基础使用方法 一.安装 1.NPM 在用 Vue 构建大型应用时推荐使用 NPM 安装[1].NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用.同时 Vue ...

  4. Vue介绍以及模板语法-插值

    1.Vue的介绍 Vue是一套用于构建用户界面的渐进式框架. 注意:Vue是一个框架,相对于jq库来说,是由本质的区别的:https://cn.vuejs.org/ Vue不支持IE8及一下版本,因为 ...

  5. 前端框架VUE——数据绑定及模板语法

    一.数据绑定 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: <div id="app"> {{ msg }} </di ...

  6. VUE 学习笔记 三 模板语法

    1.插值 a.文本 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值 <span>Message: {{ msg }}</span> v-once ...

  7. Vue API 3模板语法 ,指令

    条件# v-if# v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 truthy 值的时候被渲染. v-show# v-show 指令也是用于根据条件展示一块内容.v-show ...

  8. Vue详细介绍模板语法和过滤器的使用!

    表达式 {{ XXX }}使用过滤器 {{ XXX | yyy}}使用多个过滤器 {{ XXX | yyy | yyy1}}过滤器带参数 {{ XXX | yyy(123,"zhuiszhu ...

  9. Vue.js模板语法介绍

    Vue.js模板.指令 模板语法概述 1.如何理解前端渲染? ​ 把数据填充到HTML标签中,一般我们使用Ajax将数据从后台查询出,结合模板() 2.前端渲染方式 2.1.原生js拼接字符串 ​ 使 ...

随机推荐

  1. larave5.6 引入自定义函数库时,报错不能重复定义

    方法一:使用function_exists判断 方法二:使用命名空间 namespace test; function test(){ echo 'test/test'; } namespace te ...

  2. TP中系统跳转方法

    系统跳转方法 在ThinkPHP中系统有2个跳转方法,分别是成功跳转和失败跳转: 成功: $this -> success(跳转提示,跳转地址,等待时间); 失败: $this -> er ...

  3. PHP中大括号用法

    Php中"{}"大括号的用法总结 在PHP中,大括号“{}”可以起到如下作用: 1.将多个独立语句合并为一个复合语句,例如 if ... else ...中经常如此使用 2.在变量 ...

  4. Oracle schema 的含义

    方案(Schema)为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,sc ...

  5. SQL入门之查询入门

    select语法一般结构: SELECT [ALL|DISTINCT] <目标列表达式> [别名] [, <目标列表达式> [别名]]... FROM <表名或视图名&g ...

  6. solr服务器的查询过程

    SolrDispatchFilter的作用 This filter looks at the incoming URL maps them to handlers defined in solrcon ...

  7. (转)Redis使用详细教程

    转载至http://www.cnblogs.com/wangyuyu/p/3786236.html 一.Redis基础部分: 1.redis介绍与安装比mysql快10倍以上 ************ ...

  8. (转)rabbitmq的web管理界面无法使用guest用户登录

    转至http://www.cnblogs.com/mingaixin/p/4134920.html 安装最新版本的rabbitmq(3.3.1),并启用management plugin后,使用默认的 ...

  9. 【转】小心stringstream.str()字符串用法的陷阱

    --------------------- 作者:心中那自由的世界 来源:CSDN 原文:https://blog.csdn.net/119365374/article/details/7744678 ...

  10. elasticsearch 第一篇(入门篇)

    介绍 elasticsearch是一个高效的.可扩展的全文搜索引擎 基本概念 Near Realtime(NRT): es是一个接近实时查询平台,意味从存储一条数据到可以索引到数据时差很小,通常在1s ...