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 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
分享27个jQuery 表单插件集合推荐
Apr 25 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
Jul 04 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
Jan 22 Javascript
JavaScript实现弹出子窗口并传值给父窗口
Dec 18 Javascript
JS实现简单的二维矩阵乘积运算
Jan 26 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
关于vue.extend和vue.component的区别浅析
Aug 16 Javascript
利用Javascript开发一个二维周视图日历
Dec 14 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
Nov 21 Javascript
three.js欧拉角和四元数的使用方法
Jul 26 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 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
自己做矿石收音机
2021/03/02 无线电
用mysql内存表来代替php session的类
2009/02/01 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
ext 代码生成器
2009/08/07 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
python网络编程学习笔记(一)
2014/06/09 Python
Python如何在DataFrame增加数值
2020/02/14 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
python 日志 logging模块详细解析
2020/03/31 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Python中常用的os操作汇总
2020/11/05 Python
python数据抓取3种方法总结
2021/02/07 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
打架检讨书800字
2014/01/10 职场文书
战友聚会邀请函
2014/01/18 职场文书
工厂标语大全
2014/10/06 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android