vue常用指令:
- v-model 多用于表单元素实现双向数据绑定
- v-for 格式: v-for="(item,index) in/of 数组json" 循环数组或json
- v-show 显示内容 ,通过display=block/none来控制元素隐藏出现
- v-hide 隐藏内容 同上
- v-if 显示与隐藏 (dom元素的删除添加 同angular中的ng-if 默认值为false)
- v-else-if 必须和v-if连用
- v-else 必须和v-if连用 不能单独使用 否则报错 模板编译错误
- v-bind 动态绑定 作用: 及时对页面的数据进行更改
- v-on:click 给标签绑定函数,可以缩写为@,例如绑定一个点击函数 函数必须写在methods里面
- v-text 解析文本
- v-html 解析html标签
- v-bind:class 三种绑定方法 1、对象型 ‘{red:isred}’ 2、三元型 ‘isred?“red”:“blue”’ 3、数组型 ‘[{red:“isred”},{blue:“isblue”}]’
- v-once 进入页面时 只渲染一次 不在进行渲染
- v-cloak 防止闪烁 该属性需配合 样式使用:
<style> [v-cloak]{display:none} </style> <div id="app" v-cloak> <div> {{message}} </div> </div> <script type="text/javascript"> new Vue({ el:'#app', data:{ message:'hello world' } }) </script>
- v-pre 把标签内部的元素原位输出
v-if和v-show的区别
一、相同点
都可以动态控制着dom元素的显示隐藏
一、区别
v-if
: 控制DOM元素的显示隐藏是将DOM元素整个添加或删除
;
v-show
: 控制DOM 的显示隐藏是为DOM元素添加css的样式display
,设置none
或者是block
,DOM元素是还存在的
二、性能对比
v-if
有更高的切换消耗;
v-show
有更高的初始渲染消耗
三、使用场景
v-if
适合运营条件不大可能改变的场景下;
v-show
适合频繁切换;
例如:
v-if:
在请求后台接口,用接口返回数据渲染生成多个元素的时候,由于网速太慢,导致数据刚开始没有值,此时我们页面也会进行渲染空数据就会报错。
我们可以把一个元素作为包装元素,并使用v-if 进行条件判断,如果有值,才会显示内部元素。最终的渲染不会包含这个元素,v-show是不支持这么做的。
<div class="supports-count">
<span class="count">{{seller.supports.length}}个</span>
<i class="icon-keyboard_arrow_right"></i>
</div>
1234
export default {
data() {
return {
seller:null
}
},
//生命周期 - 创建完成(访问当前this实例)
created() {
this.$axios.get('http://www.test.com').then(res=>{
this.seller=res.data
})
},
}
组件刚创建,渲染完成后,请求未必能完成。所以一开始的seller.supports只是一个空值,必须在之前加上v-if,确保有值以后再开始计算length
<div class="supports-count" v-if="seller.supports">
<span class="count">{{seller.supports.length}}个</span>
<i class="icon-keyboard_arrow_right"></i>
</div>
v-show:
商品分类选项卡,频繁切换;