Vue模板语法V-bind

一、插值

1.文本

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--引入Vue.js-->
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
<title>无标题文档</title>
</head>

<body>
    <span id="app1">Message: {{ msg }}</span><br>
    <span id="app2" v-once>这个将不会改变: {{ msg }}</span>
</body>
</html>
<script type="text/javascript">
    // 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值。
    // Mustache 标签将会被替代为对应数据对象上 msg 属性的值。无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。例如下面在app1中设置了msg的属性为“Hello World!”,在下面重新设置了属性值为“123456”,在页面中显示为123456。
    var app1 = new Vue({
        el: '#app1',
        data: {
            msg: 'Hello World!'
        }
    })
    app1.msg = '123456';


    // 通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。但请留心这会影响到该节点上的其它数据绑定。下面的App2也重新设置了msg的值,但是页面中还是显示“你好!”,下面重新设置的属性值无效。
    var app2 = new Vue({
        el: '#app2',
        data: {
            msg: '你好!'
        }
    })
    app2.msg = '我很好';
</script>

显示结果如下:

 

2.原始Html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--引入Vue.js-->
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
<title>无标题文档</title>
</head>

<body>
    <div id="app1">
        <p>{{ html }}</p>
    </div>

    <div id="app2">
        <p v-html="html"></p>
    </div>
</body>
</html>
<script type="text/javascript">
    // 双大括号会将数据解释为普通文本,而非 HTML 代码。
    var app1 = new Vue({
        el: "#app1",
        data: {
            html: "<b style='color:red'>v-html</b>"
        }
    })

    // 为了输出真正的 HTML,你需要使用 v-html 指令:
    var app2 = new Vue({
        el: "#app2",
        data: {
            html: "<b style='color:red'>v-html</b>"
        }
    });

</script>

显示结果如下:

 

3.特性

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--引入Vue.js-->
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <style type="text/css">
        .box box2{
            border:1px dashed #f0f;
        }
        .textColor{
            color:#f00;
            background-color:#eef;
        }
        .textSize{
            font-size:30px;
            font-weight:bold;
        }
    </style>
<title>无标题文档</title>
</head>

<body>
<ul class="box" v-bind:class="{'textColor':isColor, 'textSize':isSize}">
    <li>我要吃饭</li>
    <li>我要睡觉</li>
    <li>我要工作</li>
</ul>

<ul class="box2" :class="[isA?classA:'', classB]">
    <li>我要吃饭</li>
    <li>我要睡觉</li>
    <li>我要工作</li>
</ul>
</body>
</html>
<script type="text/javascript">
    // 如果 isColor、isSize 的值是 null、undefined 或 false,则 textColor、textSize 特性不会被包含在渲染出来的 <button> 元素中。
    var vm= new Vue({
        el:'.box',
        data:{
            isColor:true,
            isSize:true
        }
    })


    var vm2= new Vue({
        el:'.box2',
        data:{
            classA:'textColor',
            classB:'textSize',
            isA:false
        }
    })

</script>

效果图:

 

posted @ 2018-09-12 21:21  Strive-count  阅读(230)  评论(0编辑  收藏  举报