Vue.js常用指令的使用小结


Posted in Javascript onJune 23, 2017

1.数据渲染:v-text、v-html、{{}}

1.1 v-text

详细:更新元素的 textContent。如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值。

实例:

<div id="app">
 <p v-text="message"></p>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
      message:'Hello World!'
    }
  });
</script>

1.2 {{}} 和上面的v-text效果一样

实例:

<div id="app">
 <p>{{message}}</p>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
      message:'Hello World!'
    }
  });
</script>

1.3 v-html

详细:更新元素的 innerHTML 。注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译 。如果试图使用v-html 组合模板,可以重新考虑通过是否通过使用组件来替代。

注意:在网站上动态渲染任意 HTML 是非常危险的,因为容易导致XSS攻击。只在可信内容上使用v-html,永不用在用户提交的内容上。

实例:

<div id="app">
 <p v-html="message"></p>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
      message:'<h5>hello vue.js</h5>'
    }
  });
</script>

2.条件渲染 控制模板隐藏:v-show 、v-if、v-else

2.1 v-show

用法:根据表达式之真假值,切换元素的 display CSS 属性。当条件变化时该指令触发过渡效果。

注意: v-show 不支持 <template> 语法

实例:

<div id="app">
 <p v-show="isShow">
  show
 </p>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
      isShow:true
    }
  });
</script>

2.2 v-if

v-show和v-if大体效果相同,不同的是:v-show的元素会始终渲染并保持在DOM中。

用法:根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 <template> ,

将提出它的内容作为条件块。当条件变化时该指令触发过渡效果。

实例:

<div id="app">
 <p v-if="isShow">
  show
 </p>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
      isShow:false
    }
  });
</script>

 2.3 v-else

限制:前一兄弟元素必须有 v-if 或 v-else-if

用法:为v-if 或者v-else-if 添加 “else 块”

<div id="app">
 <p v-if="isShow">show</p>
 <p v-else>hide</p>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
      isShow:true
    }
  });
</script>

2.4 v-else-if

<div id="app">
 <p v-if="type === 'a'">A</p>
 <p v-else-if="type==='b'">B</p>
 <p v-else>C</p>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
      type:'b',
    }
  });
</script>

3. v-for 渲染循环列表

用法:基于源数据多次渲染元素或模板块。此指令之值,必须使用特定语法 alias in expression ,为当前遍历的元素提供别名:

v-for 默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,您需要提供一个key 的特殊属性:

实例:

<body>
 <div id="app">
  <ul>
   <li v-for="item in items" :key="item.id">{{item.name}}</li>
  </ul>
 </div>
 <script>
   new Vue({
     el:'#app',
     data: {
      items:[
        {name:'hxl'},
        {name:'zp'},
        {name:'hxlzp'},
      ],
     }
   });
 </script>

4. v-on绑定事件

用法:

绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。

用在普通元素上时,只能监听 原生 DOM 事件。用在自定义元素组件上时,也可以监听子组件触发的自定义事件。

在监听原生 DOM 事件时,方法以事件为唯一的参数。如果使用内联语句,语句可以访问一个 $event 属性:

修饰符:

.stop - 调用 event.stopPropagation()。
.prevent - 调用 event.preventDefault()。
.capture - 添加事件侦听器时使用 capture 模式。
.self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。
.{keyCode | keyAlias} - 只当事件是从侦听器绑定的元素本身触发时才触发回调。
.native - listen for a native event on the root element of component.
.once - 触发一次。
.left - (2.2.0+) only trigger handler for left button mouse events.
.right - (2.2.0+) only trigger handler for right button mouse events.
.middle - (2.2.0+) only trigger handler for middle button mouse events.
.passive - (2.3.0+) attaches a DOM event with { passive: true }.

实例:

<div id="app">
 <!--方法处理器-->
 <button v-on:click="doSomething">方法处理器</button>
 <!--内联语句-->
 <button v-on:click="doSomething('Vue.js!',$event)">内联语句</button>
 <!--缩写-->
 <button @click="doSomething">缩写</button>
 <!--停止冒泡-->
 <button @click.stop="doSomething">停止冒泡</button>
 <!--阻止默认行为-->
 <button @click.prevent="doSomething">阻止默认行为</button>
 <!--串联修饰符-->
 <button @click.stop.prevent="doSomething">串联修饰符</button>
 <!--键修饰符,键别名-->
 <input @keyup.enter="onEnter" placeholder="回车键" v-model="msg">
 <button v-on:click.once="doSomething">执行一次</button>
</div>
<script>
  new Vue({
    el:'#app',
    data: {
     name:'vue.js',
     msg:''
    },
    //在methods对象中定义方法
    methods:{
      doSomething:function (event) {
        //方法中的this指向Vue实例
        alert(this.name)
      },
      onEnter:function (event) {
        this.msg = '按下了回车键'
      }
    },
  });
</script>

5.v-bind 绑定属性

用法:

动态地绑定一个或多个特性,或一个组件 prop 到表达式。

在绑定 class 或 style 特性时,支持其它类型的值,如数组或对象。可以通过下面的教程链接查看详情。

在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。

没有参数时,可以绑定到一个包含键值对的对象。注意此时 class 和 style 绑定不支持数组和对象。

修饰符:

.prop - 被用于绑定 DOM 属性。
.camel - (2.1.0+) transform the kebab-case attribute name into camelCase.
.sync - (2.3.0+) a syntax sugar that expands into a v-on handler for updating the bound value.

实例:

<!-- 绑定一个属性 -->
<img v-bind:src="imageSrc">
<!-- 缩写 -->
<img :src="imageSrc">
<!-- with inline string concatenation -->
<img :src="'/path/to/images/' + fileName">
<!-- class 绑定 -->
<div :class="{ red: isRed }"></div>
<div :class="[classA, classB]"></div>
<div :class="[classA, { classB: isB, classC: isC }]"></div>
<!-- style 绑定 -->
<div :style="{ fontSize: size + 'px' }"></div>
<div :style="[styleObjectA, styleObjectB]"></div>

以上所述是小编给大家介绍的Vue.js常用指令的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
document.all与WEB标准
May 13 Javascript
javascript void(0)的妙用
Oct 21 Javascript
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
JavaScript实现给按钮加上双重动作的方法
Aug 14 Javascript
vue开发心得和技巧分享
Oct 27 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
Jun 25 Javascript
在vue中封装可复用的组件方法
Mar 01 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 Javascript
详解Vue底部导航栏组件
May 02 Javascript
layui实现三级联动效果
Jul 26 Javascript
Vue将props值实时传递 并可修改的操作
Aug 09 Javascript
深入浅析React中diff算法
May 19 Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 #Javascript
JavaScript对象_动力节点Java学院整理
Jun 23 #Javascript
JavaScript订单操作小程序完整版
Jun 23 #Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 #Javascript
JavaScript实现简单的树形菜单效果
Jun 23 #Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 #Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 #jQuery
You might like
生成静态页面的PHP类
2006/11/25 PHP
php执行sql语句的写法
2009/03/10 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
Js nodeType 属性全面解析
2013/11/14 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python私有属性和方法实例分析
2015/01/15 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python连接DB2数据库
2016/08/27 Python
Python与R语言的简要对比
2017/11/14 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
wxPython实现绘图小例子
2019/11/19 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
洗煤厂厂长岗位职责
2014/01/03 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers