vue中的模板语法


原文链接:这里

0.前言

vue中的模板语法分为插值语法和指令语法。

1.插值语法

插值语法就是我们常见的花括号。比如下面的代码,用花括号括起来的name和msg1就是插值语法。

<!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>vue测试</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> </head> <body> <!-- 制作一个容器 --> <div id="first"> <h2>Hello, {{name}}</h2> <h2>{{msg1}}</h2> </div>   <script type="text/javascript">     new Vue({ el:'#first', data:{ name:"world", msg1:"3333333" }   })     </script> </body> </html>
2.指令语法

v-bind、v-if、v-model等等

这种语法会“值”当成js表达式来执行。

先拿v-bind举例。比如你的网站有个超链接,让你超链接到百度上,那么你一开始可能会这么写:

<!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>vue测试</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> </head> <body> <!-- 制作一个容器 --> <div id="first"> <h2>Hello, {{name}}</h2> <h2>{{msg1}}</h2> <h3>测试指令语法</h3> <a href="http://www.baidu.com"> 跳转到百度 </a> </div> <script type="text/javascript"> new Vue({ el:'#first', data:{ name:"world", msg1:"3333333" } }) </script> </body> </html>

如果我想把herf超链接变成动态可变的呢,想下面这样写肯定会出错的。

<!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>vue测试</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> </head> <body> <!-- 制作一个容器 --> <div id="first"> <h2>Hello, {{name}}</h2> <h2>{{msg1}}</h2> <h3>测试指令语法</h3> <a href={{url}}> 跳转到百度 </a> </div> <script type="text/javascript"> new Vue({ el:'#first', data:{ name:"world", msg1:"3333333", url:"http://www.baidu.com" } }) </script> </body> </html>

正确的写法应该是用v-bind。

<!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>vue测试</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> </head> <body> <!-- 制作一个容器 --> <div id="first"> <h2>Hello, {{name}}</h2> <h2>{{msg1}}</h2> <h3>测试指令语法</h3> <a v-bind:href="url"> 跳转到百度 </a> </div> <script type="text/javascript"> new Vue({ el:'#first', data:{ name:"world", msg1:"3333333", url:"http://www.baidu.com" } }) </script> </body> </html>

注:v-bind可以给标签里的任何一个属性进行动态绑定。

3.简单总结

插值语法用于解析标签体内容。

指令语法用于解析标签(包括属性、标签体、绑定事件等)

4.扩展
  • vue中v-if和v-show的用法
  • vue中循环v-for的用法