Vue.js入门与商城开发实战
上QQ阅读APP看书,第一时间看更新

2.7 Vue.js完全支持JavaScript表达式

对于所有的数据绑定,Vue.js都提供了完全的JavaScript表达式支持。示例代码如下:


<div>{{number + 2}} </div>          // 一个简单的加计算
<div>{{OK?'显示':'不显示'}}</div>     // 三元计算
<div>
    {{ qihui.split('').reverse().join('') }}
</div> // 可以对更复杂的对数组或对象进行删除添加操作

上面这些实例只能在当前组件的作用域内才有效,然后被JavaScript解析,然而这里还有个限制:每个绑定都只能包含单个表达式,所以下面的例子是不会生效的。


<div>{{ let q = 2 }}</div>            //这不是表达式
<div>{{if(ok){return '显示'}}}</div>   //流控制也不会生效,请使用三元表达式

我们在下面的示例中演示如何使用一些常规的JavaScript语法。

下面这段代码中,我们首先在data代码块定义布尔型变量ok和字符串变量message;然后在html视图部分进行四则运算、三元运算、字符串连接、JavaScript函数的使用。示例代码如下:


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>模板语法-完全的 JavaScript 表达式支持 </title>
    <!--加载本地vue.js的框架-->
    <script src="vue2.2.2.min.js"></script>
</head>
<body>
    <!--定义div代码块的id的值,这里定义的值为app,后面Vue会使用该值-->
    <div id="app">
        {{5+5}}<br> <!--JavaScript加法运算,结果为 10-->

        {{5-5}}<br> <!--JavaScript减法运算,结果为 0-->

        {{5*5}}<br> <!--JavaScript减法运算,结果为 25-->

        {{5/5}}<br> <!--JavaScript除法运算,结果为 1-->

        {{ ok ? 'YES' : 'NO' }}<br> 
    <!--JavaScript三元运算,结果为 YES-->

        {{ 'YES' + 'NO' }}<br>      
    <!--JavaScript字符串连接,结果为 YESNO-->

        {{ (new Date()).getFullYear() }}<br> 
    <!--JavaScript调用日期函数获取当前年份,比如 2020-->

        {{ message.split('').reverse().join('') }}    
    <!--JavaScript函数处理,反转字符串,结果为“师老华菊黄”-->

    </div>
    
    <script>
    new Vue({
        el: '#app',//app为前面div代码块的id的值,通过“#”绑定
        //data区域定义属性的值
        data: {
            ok: true, //定义布尔型变量
            message: '黄菊华老师' //定义字符串变量
        }
    })
    </script>
</body>
</html>

效果如图2-5所示。

图2-5 Vue.js中提供了完全的JavaScript表达式支持