Vue 2.0入门基础知识之内部指令详解


Posted in Javascript onOctober 15, 2017

1.Vue.js介绍

        当前前端三大主流框架:Angular、React、Vue。React前段时间由于许可证风波,使得Vue的热度蹭蹭地上升。另外,Vue友好的API文档更是一大特色。Vue.js是一个非常轻量级的工具,与其说是一个MVVM框架,不如说是一个js库。Vue.js具有响应式编程和组件化的特点。响应式编程,即保持状态和视图的同步,状态也可以说是数据吧;而其组件化的理念与React则一样,即“一切都是组件,组件化思想方便于模块化的开发,是前端领域的一大趋势。

2.内部指令

2-1.v-if v-else v-show:前两者一般配合使用,v-show的效果类似于v-if。

实例如下:

<body>
  <div id="app">
    <p v-if="flag">if</p>
    <p v-else>else</p>
    <p v-show="flag">show</p>
  </div>
</body>
<script>
  var vm= new Vue({
    el:"#app",
    data:{
      flag:true
    }
  });
</script>

DOM结构中,三个p标签中的内容是否显示在页面中取决于flag的布尔值属性。当flag为true时,if和show都会显示,else也不会存在于DOM结构中。v-if和v-show的不同体现在:v-if是根据条件的值判断是否加载,可以减轻服务器的压力,但是缺点是当改变条件的值,页面又要加载一次;v-show则无论条件的值是否为true,都会加载(若条件为true,则display属性设置为其默认属性,反之,设置为none)

2-2.v-for 循环指令

实例如下:

<body>
  <div id="app">
   <ol>
     <li v-for="b in b">{{b}}</li>
   </ol>
  </div>
</body>
<script>
  var vm= new Vue({
    el:"#app",
    data:{
     b:['a','b','c',1,2]
    }
  });
</script>

页面会显示5个li,插值的效果是li会显示与数组b一 一对应的元素,v-for有点类似于for in循环

2-3  v-text v-html 文本(html字符串)指令

<body>
  <div id="app">
   <p v-text="msgText"></p>
   <p v-html="msgHtml"></p>
  </div>
</body>
<script>
  var vm= new Vue({
    el:"#app",
    data:{
     msgText:"China",
     msgHtml:"<span>中国</span>"
    }
  });
</script>

可以联想到jquery的text()、html()。到现在,你会发现前面都是利用插值操作,即{{}},这种做法会在一定程度上影响性能。

2-4 v-on 绑定事件监听器

实例如下:

<body>
  <div id="app">
   <button v-on:click="Hi()">Button</button>
  </div>
</body>
<script>
  var vm= new Vue({
    el:"#app",
    methods:{
      Hi:function(){
        alert("Hello World!")
      }
    }
  });
</script>

同理,类比jquery的on()方法,绑定事件用的,实例中v-on:click可以简写为@click。click可以替换成鼠标的其他操作,如mouseout、mouseover等等。

2-5 v-bind指令

实例如下:

<body>
  <div id="app">
    <a v-bind:style="{color:'red'}" :src="message">{{message}}</a>
  </div>
</body>
<script>
  var vm = new Vue({
    el: "#app",
    data: {
      message: "前端工程师"
    }
  });
</script>

效果为a标签显示红色,且其src属性为vm.message。v-bind指令主要用于设置html标签的属性,其简写形式为 v-bind:——>:

2-6 v-model 数据双向绑定指令

实例如下:

<body>
  <div id="app">
    <p>{{message}}</p>
    <input type="text" v-model="message">
  </div>
</body>
<script>
  var vm = new Vue({
    el: "#app",
    data: {
      message: "前端工程师"
    }
  });
</script>

当input输入的值发生变化时,p标签包含的内容也会随之变化,且与前者保持一致。

2-7 v-pre 指令

实例如下:

<body>
  <div id="app">
    <p>{{message}}</p>
    <p v-pre>{{message}}</p>
  </div>
</body>
<script>
  var vm = new Vue({
    el: "#app",
    data: {
      message: "前端工程师"
    }
  });
</script>

第一个p标签输出“前端工程师”,而第二个p标签则会跳过vue编译,输出原始值,即{{message}}。

2-8 v-cloak指令

     v-cloak指令的作用是当DOM树构建好完成页面的渲染后才执行,且其须要与css一起使用

2-9 v-once指令

    v-once指令的作用是只有当DOM树第一次渲染时起作用。

总结

以上所述是小编给大家介绍的Vue 2.0入门基础知识之内部指令详解,希望对大家有所帮助!

Javascript 相关文章推荐
不懂JavaScript应该怎样学
Apr 16 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
Mar 20 Javascript
JS计算网页停留时间代码
Apr 28 Javascript
javascript实现可键盘控制的抽奖系统
Mar 10 Javascript
使用JavaScript为一张图片设置备选路径的方法
Jan 04 Javascript
JS自定义滚动条效果简单实现代码
Oct 27 Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
微信小程序实现图片上传功能
May 28 Javascript
koa+mongoose实现简单增删改查接口的示例代码
May 13 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
Nov 25 Javascript
基于javascript实现日历功能原理及代码实例
May 07 Javascript
JS中的多态实例详解
Oct 15 #Javascript
vue跨域解决方法
Oct 15 #Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
Oct 15 #Javascript
详解 vue.js用法和特性
Oct 15 #Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
Oct 14 #jQuery
JS简单实现数组去重的方法分析
Oct 14 #Javascript
jQuery响应滚动条事件功能示例
Oct 14 #jQuery
You might like
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
PHP实现MySQL更新记录的代码
2008/06/07 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
php牛逼的面试题分享
2013/01/18 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
jquery获取当前点击对象的value方法
2014/02/28 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
Django values()和value_list()的使用
2020/03/31 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
新护士岗前培训制度
2014/02/02 职场文书
中学教师请假制度
2014/02/03 职场文书
高中军训感言200字
2014/02/23 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
买卖协议书范本
2014/04/21 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL