• vue computed和watch的区别 v-if和v-show的区别 v-if和v-for优先级的问题


    vue 区分题

    computed 与 watch

    computed 与 watch的概念

    学习笔记:https://blog.csdn.net/qq_41370833/article/details/123745232

    区别

    -computedwatch
    意图根据已有属性计算出新的属性监视已有属性
    写法conputed中的函数必须将新的属性用return返回watch中的函数不是必须要用return
    功能1.初始化时调用
    2.计算所依赖的数据发生变化
    1.默认第一次加载不做监听,可以通过设置immediate让初始化时调用
    2.监控数据发生变化时调用
    是否支持异步不支持异步,当computed内有异步操作是无法监听到数据变化的
    是否有缓存√ 页面重新渲染,值不变时,会直接返回之前的计算结果,不会重新计算× 没有缓存,页面重新渲染时,值不改变时也会执行

    如果一个值依赖多个属性(多对一),用computed肯定是更加方便的。
    如果一个值变化后会引起一系列操作,或者一个值变化会引起一系列值的变化(一对多),用watch更加方便一些。

    v-if 和 v-else

    • v-if值为false时,在该位置创建一个注释节点,用来标识元素在页面中的位置。在值发生改变的时候,通过diff,新旧组件进行patch,创建DOM节点,从而动态显示隐藏。
    • v-show值为false时,通过设置元素的样式,display:none来控制元素是否展示。
    -v-ifv-show
    本质操作DOM元素进行切换显示设置css样式进行切换显示
    首次渲染开销较低较高
    切换开销较高较低
    适用场合不频繁切换频繁切换
    对生命周期的影响会影响不会影响
    • 当v-if指令附属于普通元素时,v-if指令状态变化会使得父组件的dom发生变化,父组件将会更新视图,所以会触发父组件的beforeUpdateupdated钩子函数。
    • 当v-if指令令附属于组件时,v-if指令状态变化对父组件的影响和上一条一致,但是对于本身组件的生命周期的影响是不一样的。
      • v-if从false切换到true时,会触发beforeCreatecreatedbeforeMountmounted钩子。
      • v-if从true切换到false时,会触发beforeDestroydestroyed钩子函数。
  • 相关阅读:
    APP自动化之weditor工具
    基于CentOS8操作cobbler批量装机
    删除链表中的重复元素
    13 - 多线程之锁优化(中):深入了解Lock同步锁的优化方法
    MyBatis 学习(四)之 SQL 映射文件
    java计算机毕业设计开放式教学评价管理系统源码+mysql数据库+系统+lw文档+部署
    list容器(20221117)
    Dijkstra求最短路
    【夯实算法基础】树形DP入门详解+多道例题剖析
    「运维有小邓」合规审计报表
  • 原文地址:https://blog.csdn.net/qq_41370833/article/details/125415990