vue知识小结

548 阅读2分钟

1、v-if和v-show的区别

相同点:v-if与v-show都可以动态控制dom元素显示隐藏
不同点:v-if显示隐藏是将dom元素整个添加或删除,而v-show隐藏则是为该元素添加css--display:none,dom元素还在。实例如下:

<template>
  <div id="app">
    <div v-if="ifshow">我是v-if组件</div>
    <div v-show="show">我是v-show组件</div>
  </div> 
</template>
<script>
export default {
  data() {
    return {
      show:false,
      ifshow:false
    }
  },
}
</script>

运行结果当然是空白页,因为v-if和v-show都让他们隐藏了元素 但是打开浏览器元素界面会看到下图

我们看到了 我是V-show元素的内容 它的样式是display:none;但是看不到v-if元素

2. v-on 和v-bind的区别

1、v-on可以简写成@ 而v-bind可以简写成:
2、v-bind一般用来动态更新HTML元素上的属性,如id,class,href,src等,v-on一般用来绑定html事件,常用的事件修饰符有.stop .prevent .capture .self .once .passive等

3.v-for和v-if 的优先级

v-for比v-if优先,如果每一次都需要遍历整个数组,将会影响速度,尤其是当之需要渲染很小一部分的时候。所以我们一般情况下需要这样做: 一般我们在两种常见的情况下会倾向于这样做: 1、永远不要把 v-if 和 v-for 同时用在同一个元素上。
2、为了过滤一个列表中的项目 (比如 v-for="user in users" v-if="user.isActive")。在这种情形下,请将 users替换为一个计算属性 (比如 activeUsers),让其返回过滤后的列表。
3、为了避免渲染本应该被隐藏的列表 (比如 v-for="user in users" v-if="shouldShowUsers")。这种情形下,请将 v-if 移动至容器元素上 (比如 ul, ol)。