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 相关文章推荐
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
javascript实现带节日和农历的日历特效
Feb 01 Javascript
javascript实现连续赋值
Aug 10 Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
BootStrap3使用错误记录及解决办法
Dec 22 Javascript
微信小程序 合法域名校验出错详解及解决办法
Mar 09 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
Apr 12 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
Sep 23 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
Dec 10 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
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python实现linux下抓包并存库功能
2018/07/18 Python
linux环境下Django的安装配置详解
2019/07/22 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
出国考察邀请函
2014/01/21 职场文书
网络技术专业推荐信
2014/02/20 职场文书
人力资源总监工作说明
2014/03/03 职场文书
毕业评语大全
2014/05/04 职场文书
应急处置方案
2014/06/16 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
超市主管竞聘书
2015/09/15 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB