Vue 模板语法

来自姬鸿昌的知识库
跳到导航 跳到搜索

https://www.bilibili.com/video/BV1Zy4y1K7SH?p=7

模板语法主要分两种

1.插值语法(双大括号表达式)

  • 功能:用于解析标签体内容。
  • 写法:{{xxx}},xxx 是 js表达式,且可以直接读取到 data 中的所有属性。

2.指令语法(以 v- 开头)

  • 功能:用于解析标签(包括:标签属性、标签体内容、绑定事件......)
  • 举例:v-bind:href="xxx" 或简写为 :href="xxx",xxx 同样要写 js 表达式,且可以直接读取到 data 中的所有属性。
  • 备注:Vue 中有很多的指令,且形式都是:v-????,此处我们只是拿 v-bind 举个例子。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>模板语法</title>
        <!--引入 Vue-->
        <script src="../js/vue.js"></script>
    </head>
    <body>
        <!--准备好一个容器-->
        <div id="root">
            <h1>插值语法</h1>
            <h3>你好,{{name}}</h3>
            <hr/>
            <h1>指令语法</h1>
            <a v-bind:href="url" v-bind:x="name">点我去必应1</a>
            <a :href="url.toUpperCase()" :x="name">点我去必应2</a>
        </div>
        <script>
            new Vue({
                el:'#root',
                data:{
                    name:'jack',
                    url:'http://www.bing.com/'
                }
            })
        </script>
    </body>
    </html>
    
    插值表达式用在开始标签和结束标签之间的标签体中

指令语法用来管理标签属性

v-bind 可以用 :(冒号)简写

data 多级结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>模板语法</title>
    <!--引入 Vue-->
    <script src="../js/vue.js"></script>
</head>
<body>
    <!--准备好一个容器-->
    <div id="root">
        <h1>插值语法</h1>
        <h3>你好,{{name}}</h3>
        <hr/>
        <h1>指令语法</h1>
        <a v-bind:href="hrefArg.url" v-bind:x="hrefArg.name">点我去{{hrefArg.name}}</a>
        <!-- <a :href="url.toUpperCase()" :x="name">点我去必应2</a> -->
    </div>
    <script>
        new Vue({
            el:'#root',
            data:{
                name:'jack',
                hrefArg:{
                    name:'必应',
                    url:'http://www.bing.com/'
                }
            }
        })
    </script>
</body>
</html>