Vue.js的插值操作概述

 插值

1、文本

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

<div id="app1">
    <span>Message: {{ msg }}</span><!-- 显示在页面上:Message:这是一个Vue程序 -->
</div>
<script type="text/javascript">
    new Vue({
        el:'#app1',
        data:{
            msg:'这是一个Vue程序'
        }
    })
</script>

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

2、原始HTML

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

<div id="app1">
    <p>{{ rawHtml }}</p>
    <p><span v-html="rawHtml"></span></p>
</div>
<script type="text/javascript">
    Vue.config.productionTip = false;
    new Vue({
        el:'#app1',
        data:{
            rawHtml:'<span style="color: red">红色</span>'
        }
    })
</script>

结果如下:

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

 3、Attribute(属性)

Mustache 语法 (双大括号) 不能作用在 HTML attribute 上,遇到这种情况应该使用 v-bind 指令:
 

<div id="app1">
    <div v-bind:id="div1"></div>
    <!-- 也可以简写 -->
    <div :id="div1"></div>
</div>
<script type="text/javascript">
    Vue.config.productionTip = false;
    new Vue({
        el:'#app1',
        data:{
            div1:'div1'
        }
    })
</script>

对于布尔 attribute (它们只要存在就意味着值为 true),v-bind 工作起来略有不同,在这个例子中:
 

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

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

 4、使用JavaScript表达式

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

<div id="app1">
    {{ number + 1 }}

    {{ ok ? 'YES' : 'NO' }}

    {{ message.split(' ').reverse().join('--') }}

    <div v-bind:id="'list-' + id"></div>
</div>

<script type="text/javascript">
    Vue.config.productionTip = false;
    new Vue({
        el:'#app1',
        data:{
            number:1,
            ok:'123',
            message:'asd qwe',
            id:1
        }
    })
</script>

结果如下:

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

<!-- 这是语句,不是表达式 -->
{{ var a = 1 }}

<!-- 流控制也不会生效,请使用三元表达式 -->
{{ if (ok) { return message } }}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值