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提交多个表单的小例子
Jun 30 Javascript
JavaScript 总结几个提高性能知识点(推荐)
Feb 20 Javascript
Webpack中css-loader和less-loader的使用教程
Apr 27 Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
详解Puppeteer前端自动化测试实践
Feb 21 Javascript
RxJS的入门指引和初步应用
Jun 15 Javascript
微信小程序在线客服自动回复功能(基于node)
Jul 03 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
Vue v-for循环之@click点击事件获取元素示例
Nov 09 Javascript
vue实现拖拽效果
Dec 23 Javascript
js实现图片实时时钟
Jan 15 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调用Oracle存储过程
2006/10/09 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php制作文本式留言板
2015/03/18 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
《狼和小羊》教学反思
2014/04/20 职场文书
大国崛起观后感
2015/06/02 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
Python访问Redis的详细操作
2021/06/26 Python