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

    模板语法

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

    在底层的实现上,Vue将模板编译成虚拟DOM渲染函数。结合响应系统,在应用系统改变时,Vue能够智能计算出重新渲染组件的最小代价并应用到DOM操作上。

    插值

    #文本

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

    {{msg}}

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

    <span v-once>{{msg}}</span>

    #纯HTML

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

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

    被插入的内容都会被当做 HTML —— 数据绑定会被忽略。

    注意,你不能使用 v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。组件更适合担任 UI 重用与复合的基本单元。

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

    属性

    Mustache 不能在 HTML 属性中使用,应使用 v-bind 指令:

    <div v-bind:id="dynamicId"></div>
    <button v-bind:disabled="someDynamicCondition">Button</button>

    这对布尔值的属性也有效 —— 如果条件被求值为 false 的话该属性会被移除:

    #使用javascript表达式

    迄今为止,在我们的模板中,我们一直都只绑定简单的属性键值。但实际上,对于所有的数据绑定,Vue.js都提供了完全的javascript表达式支持。

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

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

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

    模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,如 Math 和 Date 。你不应该在模板表达式中试图访问用户定义的全局变量。

  • 相关阅读:
    2018-09-13 代码翻译尝试-使用Roaster解析和生成Java源码
    2018-09-10 使用现有在线翻译服务进行代码翻译的体验
    2018-09-06 Java实现英汉词典API初版发布在Maven
    2018-08-29 浏览器插件实现GitHub代码翻译原型演示
    2018-08-27 使用JDT核心库解析JDK源码后初步分析API命名
    2018-08-11 中文代码示例之Spring Boot 2.0.3问好
    2018-08-24 中文代码之Spring Boot对H2数据库简单查询
    2018-08-22 为中文API的简繁转换库添加迟到的持续集成
    2018-08-21 中文关键词替换体验页面原型
    vim打开不同的文件
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/6544274.html
Copyright © 2011-2022 走看看