Vue -- 模板语法 & 数据绑定

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue -- 模板语法 & 数据绑定相关的知识,希望对你有一定的参考价值。

1. 模板语法

html 中包含了一些 JS 语法代码,语法分为两种,分别为:

  1. 插值语法(双大括号表达式)
  2. 指令(以 v-开头)

1.1 插值语法(放在标签体里面

功能:

用于解析标签体内容

语法:

{{xxx}} ,xxxx 会作为 js 表达式解析

示例代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>

<body>
    <!-- 准备好一个容器 -->
    <div id="demo">
        <!-- 插值语法 -->
        <h1>插值语法</h1>
        <h3>hello {{name}}</h3>
        <br>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        
        new Vue({
            el: '#demo',
            data: {
                name: 'Java'
            }
        })
    </script>
</body>
</html>

运行结果:


1.2 指令(以 v-开头 用于解析标签

功能:

解析标签属性、解析标签体内容、绑定事件

举例:

v-bind:href = ‘xxxx’ ,xxxx 会作为 js 表达式被解析

说明:

Vue 中有有很多的指令,此处只是用 v-bind 举个例子

示例代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>模板语法</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>

<body>
    <!-- 
				Vue模板语法有2大类:
					1.插值语法:
							功能:用于解析标签体内容。
							写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。
					2.指令语法:
							功能:用于解析标签(包括:标签属性、标签体内容、绑定事件.....)。
							举例:v-bind:href="xxx" 或  简写为 :href="xxx",xxx同样要写js表达式,
									 且可以直接读取到data中的所有属性。
							备注:Vue中有很多的指令,且形式都是:v-????,此处我们只是拿v-bind举个例子。

		 -->
    <!-- 准备好一个容器-->
    <div id="root">
        <h1>插值语法</h1>
        <h3>你好,{{name}}</h3>
        <hr />
        <h1>指令语法</h1>
        <a v-bind:href="school.url.toUpperCase()">点我去{{school.name}}学习1</a>
        <!-- v-bind: 可以简写为 : -->
        <a :href="school.url">点我去{{school.name}}学习2</a>
        <!-- 使用指令语法后 会把属性的内容当作表达式去解析执行 -->
        <a :href="Date.now()">点我去{{school.name}}学习2</a>
    </div>
</body>

<script type="text/javascript">
    Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
    new Vue({
        el: '#root',
        data: {
            name: 'jack',
            // data里面的内容要分好层级 避免出现命名重复的问题
            school: {
                name: '尚硅谷',
                url: 'http://www.atguigu.com',
            }
        }
    })
</script>

</html>

运行效果:

注意事项:

  1. data里面的内容要分好层级 避免出现命名重复的问题

  2. 使用指令语法后 会把属性的内容当作表达式去解析执行

示例:

解析结果:

示例: 不加指令语法

默认为字符串:


2. 数据绑定


2.1 单向数据绑定

语法:

v-bind:href =“xxx” 或简写为 :href

特点:

数据只能从 data 流向页面


2.2 双向数据绑定

语法:

v-mode:value=“xxx” 或简写为 v-model=“xxx”

特点:

数据不仅能从 data 流向页面,还能从页面流向 data


2.3 示例代码:

示例代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>数据绑定</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>

<body>
    <!-- 
			Vue中有2种数据绑定的方式:
					1.单向绑定(v-bind):数据只能从data流向页面。
					2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data。
						备注:
								1.双向绑定一般都应用在表单类元素上(如:input、select等)
								2.v-model:value 可以简写为 v-model,因为v-model默认收集的就是value值。
		 -->
    <!-- 准备好一个容器-->
    <div id="root">
        <!-- 普通写法 -->
        <!-- 单向数据绑定:<input type="text" v-bind:value="name"><br/>
			双向数据绑定:<input type="text" v-model:value="name"><br/> -->

        <!-- 简写 -->
        单向数据绑定:<input type="text" :value="name"><br />
        双向数据绑定:<input type="text" v-model="name"><br />

        <!-- 如下代码是错误的,因为v-model只能应用在表单类元素(输入类元素 含有value属性)上 -->
        <!-- <h2 v-model:x="name">你好啊</h2> -->
    </div>
</body>

<script type="text/javascript">
    Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

    new Vue({
        el: '#root',
        data: {
            name: '尚硅谷'
        }
    })
</script>

</html>

运行效果:



以上是关于Vue -- 模板语法 & 数据绑定的主要内容,如果未能解决你的问题,请参考以下文章

Vue 注意事项 模板语法 单双向绑定 语法格式 MVVM框架 Object.defineProperty和数据代理操作

Vue基础(上):MVVM模板语法数据绑定

Vue之模板语法数据绑定el与data的多种写法

Vue基础系列——Vue模板中的数据绑定语法

一起学Vue之模板语法

Vue基础系列(二二)Vue基础--Vue模板语法-vue数据绑定原理-插值语法-指令语法-元素的显示隐藏