vue模板语法

祭出demo

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。

在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。

插值

  • 文本 {{msg}}
<!--插值:
            文本
            数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:
            Mustache 标签将会被替代为对应数据对象上 msg 属性的值。
            无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。-->
            <span>Message:{{msg}}</span>


<!--通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,
            插值处的内容不会更新。但请留心这会影响到该节点上的其它数据绑定:-->
            <br />
            <span v-once>这个将不会改变: {{ msg }}</span>


  • 原始html v-html
<!--原始 HTML双大括号会将数据解释为普通文本,
            而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令:-->

            <p>Using mustaches: {{ rawHtml }}</p>
            <p>Using v-html directive: <span v-html="rawHtml"></span></p>
            <!--这个 span 的内容将会被替换成为属性值 rawHtml,直接作为
             HTML——会忽略解析属性值中的数据绑定。注意,你不能使用 
             v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。
             反之,对于用户界面 (UI),组件更适合作为可重用和可组合的基本单位。-->

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

  • 特性
<!--Mustache 语法不能作用在 HTML 特性上,
            遇到这种情况应该使用 v-bind 指令:
            下面的代码,是绑定了了id值,然后通过id对标签设置innerText
            -->
            <div v-bind:id="dynamicId"></div>

            <!--在布尔特性的情况下,它们的存在即暗示为 true,
            v-bind 工作起来略有不同,在这个例子中:
            如果 isButtonDisabled 的值是 null、undefined 或 false,
            则 disabled 特性甚至不会被包含在渲染出来的 <button> 元素中。-->
            <button v-bind:disabled="isButtonDisabled">Button</button>
  • 使用JavaScript 表达式
<!--使用 JavaScript 表达式在我们的模板中,
            我们一直都只绑定简单的属性键值。但实际上,
            对于所有的数据绑定,Vue.js 都提供了完全的 
            JavaScript 表达式支持。
            这些表达式会在所属 Vue 实例的数据作用域下作为
             JavaScript 被解析。有个限制就是,每个绑定都只能包含单个表达式-->
            <div>
                first line:{{ number + 1 }}
                <br /> second line:{{ ok ? 'YES' : 'NO' }}
                <br /> third line: {{ message.split('').reverse().join('') }}
                <br />
                <div v-bind:id="'list-' + id"></div>
            </div>

            <!--模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,
            如 Math 和 Date 。你不应该在模板表达式中试图访
            问用户定义的全局变量。-->
            <div>
                时间:{{Date().toLocaleString()}}
                最大值函数:{{Math.max(10,20)}}
            </div>

指令

  • 参数
<!--指令
            指令 (Directives) 是带有 v- 前缀的特殊特性。
            指令特性的值预期是单个 JavaScript 表达式 (v-for
             是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时
             ,将其产生的连带影响,响应式地作用于 DOM。
             回顾我们在介绍中看到的例子:-->
             <p v-if="seen">现在你看到我了</p>

<!--参数
            一些指令能够接收一个“参数”,在指令名称之后以冒号表示。
            例如,v-bind 指令可以用于响应式地更新 HTML 特性:
            另一个例子是 v-on 指令,它用于监听 DOM 事件:
            -->
            <a v-bind:href="url">你可以去百度</a>
            <br />
            <a :href="url">你可以去百度</a><!--这个v-bind是简写-->
            <br />
            <a v-on:click="doSomething" style="color:red">点击可以调用doSomething函数</a>
            <br />
            <a @click="doSomething" style="color:red">点击可以调用doSomething函数</a><!--这个v-on是简写-->

祭出demo

参考:
vue.js模板语法

更新时间: 2018-07-18

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容

  • Vue.js使用基于HTML的模板语法,允许开发者声明式地将DOM绑定到底层Vue实例。所有Vue.js的模板都是...
    JunChow520阅读 3,245评论 0 0
  • 一. 模板语法 *** Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 ...
    竹溪穆褕阅读 240评论 0 0
  • 模板语法 Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的...
    mxjsxz阅读 443评论 0 1
  • 在vue中模板是什么? 这个就是模板: Vue.js 使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定...
    廖马儿阅读 284评论 0 0
  • Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。 V...
    何wife阅读 343评论 0 0