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 EasyUI中对表格进行编辑的实现代码
Jun 10 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
悬浮数字的实现案例
Feb 19 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
Feb 21 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
JavaScript装饰器函数(Decorator)实例详解
Mar 30 Javascript
js获取css的各种样式并且设置他们的方法
Aug 22 Javascript
laravel5.4+vue+element简单搭建的示例代码
Aug 29 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 Javascript
基于javascript实现碰撞检测
Mar 12 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
js 中的switch表达式使用示例
2020/06/03 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
JS实现简单的表格增删
2020/01/16 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
高一物理教学反思
2014/01/24 职场文书
《口技》教学反思
2014/02/21 职场文书
拖欠货款起诉状
2015/05/20 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers