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学习笔记之Helloworld
Dec 22 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
javascript ready和load事件的区别示例介绍
Aug 30 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
Oct 21 Javascript
JS运动基础框架实例分析
Mar 03 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
深入理解Angular中的依赖注入
Jun 26 Javascript
关于TypeScript中import JSON的正确姿势详解
Jul 25 Javascript
JS实现音乐导航特效
Jan 06 Javascript
基于原生JS封装的Modal对话框插件的示例代码
Sep 09 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页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
JS字符串的切分用法实例
2016/02/22 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
使用Python 统计高频字数的方法
2019/01/31 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
自我评价是什么
2014/01/04 职场文书
公开承诺书格式
2014/05/21 职场文书
反腐倡廉标语
2014/06/24 职场文书
干部对照检查材料范文
2014/08/26 职场文书
暑期培训班招生方案
2014/08/26 职场文书
名人演讲稿范文
2014/09/16 职场文书
介绍信范文大全
2015/05/07 职场文书
2019年个人工作总结范文
2019/03/25 职场文书