跳转至内容
  • 版块
  • 最新
  • 热门
  • 标签
  • 积分榜
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

百得社区

  1. 主页
  2. 技术交流
  3. 大前端交流区
  4. Vue3 使用小技巧

Vue3 使用小技巧

已定时 已固定 已锁定 已移动 大前端交流区
4 帖子 4 发布者 87 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 流浪法师刘海柱流 离线
    流浪法师刘海柱流 离线
    流浪法师刘海柱
    写于 最后由 流浪法师刘海柱 编辑
    #1

    1.v-memo 渲染 :大型列表更新时全量重渲染卡顿技巧:仅当依赖项变化时更新DOM

    <template>
      <!-- 仅当item.id或item.data变化时重渲染 -->
      <div v-for="item in list" :key="item.id" v-memo="[item.id, item.data]">
        {{ heavyCompute(item) }} <!-- 昂贵计算 -->
      </div>
    </template>
    

    2.Reactivity Transform 解构
    痛点:.value地狱污染代码
    技巧:编译器自动解构ref

    <script setup>
    let count = $ref(0) // 直接使用count而非count.value
    
    const double = $computed(() => count * 2) // 自动解构
    </script>
    

    3.动态组件工厂模式
    痛点:冗余的<component :is>逻辑
    技巧:JSX实现组件工厂

    const componentFactory = (type) => defineComponent({
      setup: () => () => h(resolveComponent(`${type}-component`))
    })
    // 使用:<component :is="componentFactory('chart')" />
    
    

    4.依赖注入的防污染技
    痛点:provide/inject命名冲突
    技巧:Symbol作为注入密钥

    // auth.js
    export const AuthKey = Symbol()
    
    // 父级
    provide(AuthKey, { user: ref(null) })
    
    // 子级
    const auth = inject(AuthKey) // 完全隔离
    

    5.Effect Scope 精准内存回收
    痛点:手动清理computed/watch易遗漏
    技巧:作用域自动回收

    import { effectScope } from 'vue'
    
    const scope = effectScope()
    scope.run(() => {
      const doubled = computed(() => count.value * 2)
      watch(count, (v) => console.log(v))
    })
    
    scope.stop() // 一键清理所有
    
    
    1 条回复 最后回复
    5
    • 悲 离线
      悲 离线
      悲伤的牛油果158
      写于 最后由 编辑
      #2

      确实是个好技巧,学会了

      1 条回复 最后回复
      4
      • 勤 离线
        勤 离线
        勤劳的枇杷668
        写于 最后由 编辑
        #3

        学废了

        1 条回复 最后回复
        4
        • 重复过往重 离线
          重复过往重 离线
          重复过往
          写于 最后由 编辑
          #4

          学习了

          这次不得不冲了!

          1 条回复 最后回复
          2

          Powered by NodeBB | Contributors
          • 登录

          • 登录或注册以进行搜索。
          • 第一个帖子
            最后一个帖子
          0
          • 版块
          • 最新
          • 热门
          • 标签
          • 积分榜
          • 用户
          • 群组