zoukankan      html  css  js  c++  java
  • 3、模板语法

    一、插值

    1、文本

      数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:

    <span>Message: {{ msg }}</span>

      Mustache 标签将会被替代为对应数据对象上 msg 属性的值。无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。

      通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。但请留心这会影响到该节点上所有的数据绑定:

    <span v-once>这个将不会改变: {{ msg }}</span>

    2、原始HTML

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

    <p>Using mustaches: {{ rawHtml }}</p>
    <p>Using v-html directive: <span v-html="rawHtml"></span></p>
    
    rawHtml = '<span style="color:red">This shoud be red</span>'
    
    Using mustaches: <span style="color: red">This should be red.</span>
    Using v-html directive: This should be red.

      这个 span 的内容将会被替换成为属性值 rawHtml,直接作为 HTML——会忽略解析属性值中的数据绑定。

    3、特性

      Mustache 语法不能作用在 HTML 特性上,遇到这种情况应该使用 v-bind 指令

    <div v-bind:id="dynamicId"></div>

      在布尔特性的情况下,它们的存在即暗示为true,v-bind工作起来略有不同,在这个例子中:

    <button v-bind:disabled="isButtonDisabled">Button</button>

      如果 isButtonDisabled 的值是 nullundefined 或 false,则 disabled 特性甚至不会被包含在渲染出来的 <button> 元素中。

    4、使用JS表达式

      对于所有的数据绑定,Vue.js 都提供了完全的 JavaScript 表达式支持。

    {{ number + 1 }}
    
    {{ ok ? 'YES' : 'NO' }}
    
    {{ message.split('').reverse().join('') }}
    
    <div v-bind:id="'list-' + id"></div>

      这些表达式会在所属 Vue 实例的数据作用域下作为 JavaScript 被解析。有个限制就是,每个绑定都只能包含单个表达式,所以下面的例子都不会生效。

    <!-- 这是语句,不是表达式 -->
    {{ var a = 1 }}
    
    <!-- 流控制也不会生效,请使用三元表达式 -->
    {{ if (ok) { return message } }}

    二、指令

      指令 (Directives) 是带有 v- 前缀的特殊属性。指令属性的值预期是单个 JavaScript 表达式(v-for 是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。

     1、参数

      一些指令能够接收一个“参数”,在指令名称之后以冒号表示。例如,v-bind 指令可以用于响应式地更新 HTML 属性:

    <a v-bind:href="url">...</a>

      在这里 href 是参数,告知 v-bind 指令将该元素的 href 属性与表达式 url 的值绑定。

      另一个例子是 v-on 指令,它用于监听 DOM 事件。

    2、修饰符

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

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

    三、缩写

      Vue.js 为 v-bind 和 v-on 这两个最常用的指令,提供了特定简写:

    1、v-bind缩写

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

    2、v-on缩写

    <!-- 完整语法 -->
    <a v-on:click="doSomething">...</a>
    
    <!-- 缩写 -->
    <a @click="doSomething">...</a>
  • 相关阅读:
    bfs入门 (HDU
    Codeforces Round #570 (Div. 3)B
    nyoj 277-车牌号 (map, pair, iterator)
    nyoj 276-比较字母大小 (顺序比较, 逆序输出)
    nyoj 275-队花的烦恼一 (stack, push, pop)
    nyoj 274-正三角形的外接圆面积 (R = PI * a * a / 3)
    nyoj 273-字母小游戏 (getline(cin, string))
    nyoj 268-荷兰国旗问题 (count)
    nyoj 266-字符串逆序输出 (isdigit(), geline(cin, my_string))
    nyoj 264-国王的魔镜 (string[-1:-int(str_len/2+1):-1])
  • 原文地址:https://www.cnblogs.com/huangj/p/8118765.html
Copyright © 2011-2022 走看看