目录
Vue模板语法有两大类
1.插值语法:
功能:用于解析标签体的内容
写法: {{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性
2.指令语法:
功能:用于解析标签(包括:标签属性、标签体内容、绑定事件...)
举例:v-bind:href="xxx" 或简写成 :href="xxx",xxx同样要写js表达式
且可以直接读取到data中的所有属性
备注:Vue中有很多的指令,且形式都是:v-????
Vue中有两种数据绑定方式:
1.单向绑定(v-bind):数据只能从data流向页面
2.双向绑定(v-model):数据能从data和页面互相流向
备注:
1.双向绑定一般都应用在表单类元素上(如:input、select等)
2.v-model:value 可以简写为v-model,因为v-model默认手机的就是value值
- html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title> 初识vuetitle>
-
- <script type="text/javascript" src="../js/vue.js">script>
- head>
- <body>
-
- <div id="root">
- <h1>插值语法h1>
- <h3>你好,{{name}} h3>
- <hr/>
- div>
-
-
- <script type="text/javascript">
- //阻止vue在启动时生成生产提示
- Vue.config.productionTip=false
-
- new Vue({
- el:'#root',
- data:{
- name:'jack'
- }
-
- })
-
- script>
-
-
- body>
- html>
-
-
带有v-的都是指令语法 bind是绑定的意思
在这个地方吧url的结构绑定给href url为js表达式
v-bind可以动态的给属性绑定值
点我去一个好地方
其中v-bind都可以省略写成 :
- <div id="root">
- <h1>插值语法h1>
- <h3>你好,{{name}} h3>
- <hr/>
- <h1>指令语法h1>
-
-
-
-
-
- <a :href="url">点我去一个好地方a>
- div>
-
- <script type="text/javascript">
- //阻止vue在启动时生成生产提示
- Vue.config.productionTip=false
-
- new Vue({
- el:'#root',
- data:{
- name:'jack',
- url:'http://www.baidu.com'
- }
-
- })
-
- script>

- html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title> 初识vuetitle>
-
- <script type="text/javascript" src="../js/vue.js">script>
- head>
- <body>
-
- <div id="root">
- 单行数据绑定: <input type="text" :value="name">
- div>
-
-
- <script type="text/javascript">
- //阻止vue在启动时生成生产提示
- Vue.config.productionTip=false
-
- new Vue({
- el:'#root',
- data:{
- name:'尚硅谷123'
- }
-
- })
- script>
-
-
- body>
-

当我们在Vue中修改name的值的时候,页面的值也会随着修改,如下图

但是我们在文本框中修改内容的时候,Vue中的name值不会改变

原因: 单向绑定的关系

2.双向数据绑定
- <div id="root">
- 单行数据绑定: <input type="text" :value="name">
- <br>
- 双行数据绑定: <input type="text" v-model:value="name">
- div>
结果如下图

当我们修改Vue中name时,我们发现两个文本框都会改变

当我们修改双向绑定文本框的时候,我们发现Vue的name值也会改变 (单向文本框也会改变的原因是因为Vue的name值改变了)

产生了一个类似下图的连锁反应
