| 指令 | 作用 |
| v-bind | 为HTML标签绑定属性值,如设置 href , css样式等 |
| v-model | 在表单元素上创建双向数据绑定 |
| v-on | 为HTML标签绑定事件 |
| v-if | 条件性的渲染某元素,判定为true时渲染,否则不渲染 |
| v-else | |
| v-else-if | |
| v-show | 根据条件展示某元素,区别在于切换的是display属性的值 |
| v-for | 列表渲染,遍历容器的元素或者对象的属性 |
| 指令 | 作用 |
| v-bind | 为HTML标签绑定属性值,如设置 href , css样式等 |
| v-model | 在表单元素上创建双向数据绑定 |
(1)v-bind
该指令可以给标签原有属性绑定模型数据。这样模型数据发生变化,标签属性值也随之发生变化
例如:
<a v-bind:href="url">百度一下a>上面的
v-bind:"可以简化写成:,如下:
<a :href="url">百度一下a>(2)v-model
该指令可以给表单项标签绑定模型数据。这样就能实现双向绑定效果。例如:
<input name="username" v-model="username">
代码演示:
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <div id="app">
- <a v-bind:href="url">点击一下a>
- <a :href="url">点击一下a>
- <input v-model="url">
- div>
-
- <script src="js/vue.js">script>
- <script>
- //1. 创建Vue核心对象
- new Vue({
- el:"#app",
- data(){
- return {
- username:"",
- url:"https://www.baidu.com"
- }
- }
- });
- script>
- body>
- html>
通过浏览器打开上面页面,并且使用检查查看超链接的路径,该路径会根据输入框输入的路径变化而变化,这是因为超链接和输入框绑定的是同一个模型数据

| 指令 | 作用 |
| v-on | 为HTML标签绑定事件 |
我们在页面定义一个按钮,并给该按钮使用
v-on指令绑定单击事件,html代码如下<input type="button" value="一个按钮" v-on:click="show()">而使用
v-on时还可以使用简化的写法,将v-on:替换成@,html代码如下<input type="button" value="一个按钮" @click="show()">上面代码绑定的
show()需要在 Vue 对象中的methods属性中定义出来
new Vue({ el: "#app", methods: { show(){ alert("我被点了"); } } });注意:
v-on:后面的事件名称是之前原生事件属性名去掉on。
例如:
单击事件 : 事件属性名是 onclick,而在vue中使用是
v-on:click失去焦点事件:事件属性名是 onblur,而在vue中使用时
v-on:blur
整体页面代码如下:
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <div id="app">
- <input type="button" value="一个按钮" v-on:click="show()"><br>
- <input type="button" value="一个按钮" @click="show()">
- div>
- <script src="/js/vue.js">script>
- <script>
- //1. 创建Vue核心对象
- new Vue({
- el:"#app",
- data(){
- return {
- username:"",
- }
- },
- methods:{
- show(){
- alert("我被点了...");
- }
- }
- });
- script>
- body>
- html>
3、条件判断指令| 指令 | 作用 |
| v-if | 条件性的渲染某元素,判定为true时渲染,否则不渲染 |
| v-else | |
| v-else-if | |
| v-show | 根据条件展示某元素,区别在于切换的是display属性的值 |
接下来通过代码演示一下。在 Vue中定义一个
count的数据模型,如下
//1. 创建Vue核心对象 new Vue({ el:"#app", data(){ return { count:3 } } });现在要实现,当
count模型的数据是3时,在页面上展示div1内容;当count模型的数据是4时,在页面上展示div2内容;count模型数据是其他值时,在页面上展示div3。这里为了动态改变模型数据count的值,再定义一个输入框绑定count模型数据。html 代码如下:
<div id="app"> <div v-if="count == 3">div1div> <div v-else-if="count == 4">div2div> <div v-else>div3div> <hr> <input v-model="count"> div>
整体页面代码如下:
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <div id="app">
- <div v-if="count == 3">div1div>
- <div v-else-if="count == 4">div2div>
- <div v-else>div3div>
- <hr>
- <input v-model="count">
- div>
-
- <script src="js/vue.js">script>
- <script>
- //1. 创建Vue核心对象
- new Vue({
- el:"#app",
- data(){
- return {
- count:3
- }
- }
- });
- script>
- body>
- html>
通过浏览器打开页面并在输入框输入不同的值,效果如下
然后我们在看看
v-show指令的效果,如果模型数据count的值是3时,展示div v-show内容,否则不展示,html页面代码如下
<div v-show="count == 3">div v-showdiv> <br> <input v-model="count">浏览器打开效果如下:
通过上面的演示,发现
v-show和v-if效果一样,那它们到底有什么区别呢?我们根据浏览器的检查功能查看源代码
通过上图可以看出
v-show不展示的原理是给对应的标签添加displaycss属性,并将该属性值设置为none,这样就达到了隐藏的效果。而v-if指令是条件不满足时根本就不会渲染。
| 指令 | 作用 |
| v-for | 列表渲染,遍历容器的元素或者对象的属性 |
这个指令看到名字就知道是用来遍历的,该指令使用的格式如下:
<标签 v-for="变量名 in 集合模型数据"> {{变量名}} 标签>==注意:需要循环那个标签,
v-for指令就写在那个标签上。==如果在页面需要使用到集合模型数据的索引,就需要使用如下格式:
<标签 v-for="(变量名,索引变量) in 集合模型数据"> {{索引变量 + 1}} {{变量名}} 标签>
代码演示:
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <div id="app">
- <div v-for="addr in addrs">
- {{addr}} <br>
- div>
-
- <hr>
- <div v-for="(addr,i) in addrs">
- {{i+1}}--{{addr}} <br>
- div>
- div>
-
- <script src="js/vue.js">script>
- <script>
-
- //1. 创建Vue核心对象
- new Vue({
- el:"#app",
- data(){
- return {
- addrs:["北京","上海","西安"]
- }
- }
- });
- script>
- body>
- html>
通过浏览器打开效果如下
