Vuejs --03 模板语法

一、插值

1、文本

<span>{{msg}}</span>     //mustache语法

<span v-once>{{msg}}</span>     //一次性插值,当数据改变时,不会响应式更新

2、纯HTML     你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。

<div v-html="rawHtml"></div>

3、特性

3.1     mustache 语法不能作用在HTML特性上(也就是只能数据赋值,不能属性赋值,属性赋值用v-bind指令)

3.2     v-bind指令同样适用布尔类型:如果求值结果是 falsy 的值,则该特性将会被删除

4、适用JavaScript表达式

{{num + 1}}
{{num > 0 ? num++ : num}}
{{ message.split(‘‘).reverse().join(‘‘) }}
<div v-bind:id="‘list-‘ + id"></div>

//以下报错:

<!-- 这是语句,不是表达式 -->

{{ var a = 1 }}

<!-- 流控制也不会生效,请使用三元表达式 -->

{{ if (ok) { return message } }}

二、指令

1、是带v-前缀的特殊属性,预期是单个JavaScript表达式。指令的职责:当表达式值发生改变时,将其产生的连带影响,响应式地作用于DOM

     2、参数:可以是HTML属性,事件名等

<a v-bind:href="url"></a>
<a v-on:click="btnEvent"></a>

3、修饰符     修饰符(Modifiers)是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。

<form v-on:submit.prevent="onSubmit"></form>

三、过滤器

1、解释:上一个过滤器的输出成为下一个过滤器的输入,然后再次过滤     eg.    {{ msg | capitalize }}  --> 将输入的字符串转换成大写字母的过滤器。

2、Vuejs允许自定义过滤器,用于一些常见的文本格式化,可以用在两个地方:mustache、v-bind表达式。 过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符指示

<!-- in mustaches -->
{{ message | capitalize }}     // message 结果是 capitalize 的输入
<!-- in v-bind -->
<div v-bind:id="rawId | formatId"></div>

<script>
     new Vue({
        // ...
        filters: {
            capitalize: function(value) {     //value,是上一个过滤器的输出得出的结果,先成为此过滤器的输入,即value=message
                if (!value) return ‘‘
                value = value.toString()
                return value.charAt(0).toUpperCase() + value.slice(1)
            }
        }
    })
</script>

3、过滤器可以串联

{{ message | filterA | filterB }}

4、过滤器可以接受参数(因为过滤器是JavaScript函数)

{{ message | filterA(‘arg1‘, arg2) }}

四、缩写

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>

<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>
时间: 2024-10-11 14:30:14

Vuejs --03 模板语法的相关文章

vue入门:(模板语法与指令)

vuejs使用及HTML的模板语法,可以实现声明式将DOM绑定至底层VUE实例的数据.通过模板语法将数据渲染进DOM的系统,结合响应系统,在应用状态改变时,Vue能够计算出重新渲染组件的最小代价并应用到DOM操作上. VUE的模板语法的内容包括:插值.指令. 插值包括:文本插值.原始HTML插值.特性插值.以及使用javascript表达式实现插值. 指令:参数.动态参数.修饰符. 缩写形式是指v-bind和v-on指定可以采用缩写形式:'v-bind:'-->‘:’.'v-on'-->'@'

Vue.js 实战教程 V2.x(6)模板语法

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. 6.1插值 var obj = { msg: 'Hello Vue.js', rawHtml: '<span style="color: red">This should be red.</span>' } new Vue({ el: '#app', data: obj }) <div id="app"> ... <

Angular 2 模板语法与常用指令简介

一.模板语法简介 插值表达式 <div>Hello {{name}}</div> 等价于 <div [textContent]="interpolate(['Hello'], [name])"></div> 模板表达式 1.属性绑定 1.1输入属性的值为常量 <show-title title="Some Title"></show-title> 等价于 <show-title [titl

vue.js 学习之模板语法详解

本文和大家分享的主要是vue.js 的模板语法,希望对大家学习vue.js有所帮助,一起来看看吧. Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析. 在底层的实现上, Vue 将模板编译成虚拟 DOM 渲染函数.结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上. 如果你熟悉虚拟 D

django之定义模板语法08({{ string | truncatewords:&#39;2&#39; }})

#index页面代码: <html> <head> <title>DOcument</title> </head> <body> <h1>{{user}}</h1> </br> </br> <h1>过滤器</h1> <p>{{ string | truncatewords:'2' }}</p> //显示前2个字(非字母) </body

vue 模板语法

模板语法 Vue.js使用了基于HTML的模板语法,允许开发者声明式将DOM绑定至底层Vue实例的数据.所有Vue.js的模板都是合法的HTML,所以可以被遵循规范的浏览器和HTML解析器解析. 在底层的实现上,Vue将模板编译成虚拟DOM渲染函数.结合响应系统,在应用系统改变时,Vue能够智能计算出重新渲染组件的最小代价并应用到DOM操作上. 插值 #文本 数据绑定最常见的形式就是使用"Mustache"语法(双大括号)的文本插值: {{msg}} 通过使用v-once指令,你也能执

模板语法

Vue.js使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据.所有Vue.js的模板都是合法的HML,所以能被遵循规范的浏览器和HTML解析器解析. 在底层的实现上,Vue将模板编译成虚拟DOM渲染函数.结合响应系统,在应用状态改变时,Vue能够智能地计算出重新渲染组件的最小代价并应用到DOM操作上. 如果你熟悉虚拟DOM 并且偏爱JavaScript的原始力量,你也可以不用模板,直接写渲染(render)函数,使用可选的JSX语法. 插值: 文本: 数据绑定最

Vue常用模板语法

常用模板语法 本篇将在上一篇的基础上记录文本渲染.表达式.过滤器以及常用指令的简单用法. 一.文本渲染 Vue支持动态渲染文本,即在修改属性的同时,实时渲染文本内容.同时为了提高渲染效率,也支持只渲染一次,即第一次渲染出文本后,文本内容不再跟随属性值的变化而变化. 实时渲染 1 <div class="row"> 2 <h2>文本 - 实时渲染</h2> 3 <input type="text" v-model="

angular2的模板语法

Angular 应用管理着用户之所见和所为,并通过 Component 类的实例(组件)和面向用户的模板来与用户交互. 从使用模型-视图-控制器 (MVC) 或模型-视图-视图模型 (MVVM) 的经验中,很多开发人员都熟悉了组件和模板这两个概念. 在 Angular 中,组件扮演着控制器或视图模型的角色,模板则扮演视图的角色. 来看看写视图的模板都需要什么.本章将覆盖模板语法中的下列基本元素 HTML 是 Angular 模板的语言.快速起步应用的模板是纯 HTML 的: <h1>Hello