首页 > php教程 > PHP开发 > Vue.js常用指令汇总(v-if、v-for等)

Vue.js常用指令汇总(v-if、v-for等)

高洛峰
发布: 2016-12-07 16:54:00
原创
2085 人浏览过

有时候指令太多会造成记错、记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错。

本文主要讲了一下六个指令:

v-if//v-show//v-else//v-for//v-bind//v-on

1. v-if 条件渲染指令,根据其后表达式的bool值进行判断是否渲染该元素;

eg: 

HTML:

1

2

3

4

5

6

<p id="example01">

 <p v-if="male">Male</p>

 <p v-if="female">Female</p>

 <p v-if="age>25">Age:{{age}}</p>

 <p v-if="name.indexOf(&#39;lin&#39;)>0">Name:{{name}}</p>

</p>

登录后复制


JS:

1

2

3

4

5

6

7

8

9

var vm= new Vue({

 el:"#example01",

 data:{

  male:true,

  female: false,

  age:29,

  name:&#39;colin&#39;

 }

 })

登录后复制


页面渲染效果:

20161114114050736.jpg

所以,v-if指令只渲染他身后表达式为true的元素;在这里引入v-show指令,因为二者的区别是v-show指令会渲染他身后表达式为false的元素,这样的元素上会添加css代码:style="display:none"; 将上面v-if的实例代码改为v-show,页面渲染效果为:

20161114114050736.jpg

2, v-show 与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style="display:none";

3, v-else 必须跟在v-if/v-show指令之后,不然不起作用;

如果v-if/v-show指令的表达式为true,则else元素不显示;如果v-if/v-show指令的表达式为false,则else元素显示在页面上;

eg:

1

2

3

4

5

6

7

<p id="app">

<h1 v-if="age >= 25">Age: {{ age }}</h1>

<h1 v-else>Name: {{ name }}</h1>

<hr>

<h1 v-show="name.indexOf(&#39;cool&#39;) = 0">Name: {{ name }}</h1>

<h1 v-else>Sex: {{ sex }}</h1>

</p>

登录后复制

1

2

3

4

5

6

7

8

9

10

<script>

 var vm = new Vue({

 el: &#39;#app&#39;,

 data: {

  age: 21,

  name: &#39;keepcool&#39;,

  sex: &#39;Male&#39;

 }

 })

</script>

登录后复制


4, v-for 类似JS的遍历,用法为 v-for="item in items", items是数组,item为数组中的数组元素。

eg:

CSS:

1

2

3

4

5

6

<style>

table,th,tr,td{

  border:1px solid #ffcccc;

  border-collapse: collapse;

 }

</style>

登录后复制


HTML:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<p id="example03">

 <table>

 <thead>

 <tr>

  <th>Name</th>

  <th>Age</th>

  <th>Sex</th>

 </tr>

 </thead>

 <tbody>

 <tr v-for="person in people">

  <td>{{ person.name }}</td>

  <td>{{ person.age }}</td>

  <td>{{ person.sex }}</td>

 </tr>

 </tbody>

 </table>

</p>

登录后复制


JS:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<script>

 var vm = new Vue({

 el: &#39;#example03&#39;,

 data: {

  people: [{

  name: &#39;Jack&#39;,

  age: 30,

  sex: &#39;Male&#39;

  }, {

  name: &#39;Bill&#39;,

  age: 26,

  sex: &#39;Male&#39;

  }, {

  name: &#39;Tracy&#39;,

  age: 22,

  sex: &#39;Female&#39;

  }, {

  name: &#39;Chris&#39;,

  age: 36,

  sex: &#39;Male&#39;

  }]

 }

 })

</script>

登录后复制


页面效果:

20161114114050736.jpg

5, v-bind 这个指令用于响应地更新 HTML 特性,比如绑定某个class元素或元素的style样式。

eg,分页功能中当前页数高亮的效果,可以使用bind指令。

1

2

3

4

5

6

<ul class="pagination">

  <li v-for="n in pageCount">

   <a href="javascripit:void(0)" v-bind:class="activeNumber === n + 1 ? &#39;active&#39; : &#39;&#39;">{

   { n + 1 }}</a>

  </li>

  </ul>

登录后复制


6, v-on 用于监听指定元素的DOM事件,比如点击事件。

eg:

1

2

3

4

5

6

<p id="example04">

 <input type="text" v-model="message">

 <button v-on:click="greet">Greet</button>

 <!-- v-on指令可以缩写为@符号-->

 <button @click="greet">Greet Again</button>

 </p>

登录后复制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<script>

 var exampleData04={

 message:"Nice meeting U"

 };

 var vm2=new Vue({

 el:"#example04",

 data:exampleData04,

 methods:{

  greet:function(){

  alert(this.message);

  }

    

 }

 })

</script>

登录后复制

   以上就是Vue.js常用指令汇总(v-if、v-for等)的内容,更多相关内容请关注PHP中文网(www.php.cn)!



相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
javascript - vue.js与html页面之间的跳转
来自于 1970-01-01 08:00:00
0
0
0
vue.js - ViewModel和Controller有什么区别?
来自于 1970-01-01 08:00:00
0
0
0
使用Vue.js Web组件与Pinia
来自于 1970-01-01 08:00:00
0
0
0
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板