当前位置: 首页 > news >正文

vue基本功

watchEffect和watch

watchEffect默认 immdiate 是 true,而且自动收集依赖
watch需要手动写依赖,immdiate 默认是 false

toRef和toRefs

toRef: 复制 reactive 里的单个属性并转成 ref
toRefs: 复制 reactive 里的所有属性并转成 ref

vue3中使用vuex

import { useStore } from ‘vuex’;
通过useStore 获取Vuex store实例

nextTick

推迟到下一个 DOM 更新周期之后执行

v-show和v-if

v-show只是切换元素的CSS属性,display:none

import()和defineAsyncComponent

  • 如果只需要简单的懒加载,直接使用 import() 是足够的。
  • 如果需要更复杂的加载逻辑(如加载中状态、错误处理、延迟加载等),则推荐使用 defineAsyncComponent。它基于 import() 的能力,进一步封装了异步加载的逻辑,提供了更丰富的功能,如加载状态、错误处理、延迟和超时等。

什么是SFC

Vue 的单文件组件 (即 *.vue 文件,英文 Single-File Component,简称 SFC)

为什么 data 选项是一个函数

每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据

Vue 是单向数据流

数据总是从父组件传到子组件,子组件没有权利修改父组件传过来的数据,只能请求父组件对原始数据进行修改

v-model

通过v-model实现双向绑定,注意这个跟单向数据流是两个不同的概念

beforeEnter

路由独享守卫是在单个路由配置中定义的钩子函数,它只对该路由的实例生效。路由独享守卫只有一个
在定义了全局混入后,所有 Vue 组件都会自动继承这些混入选项。例如:

mixin混入

1. 混入的合并策略

当混入对象与组件选项冲突时,Vue 会按照一定的策略合并它们:

  • 数据(data:混入的 data 会与组件的 data 合并,但组件的 data 优先级更高。
  • 方法(methods:混入的 methods 和组件的 methods 会合并,组件的同名方法会覆盖混入的方法。
  • 计算属性(computed:混入的 computed 和组件的 computed 会合并,组件的同名计算属性会覆盖混入的。
  • 生命周期钩子:混入的生命周期钩子会与组件的生命周期钩子合并,按顺序依次触发。
  • 其他选项:如 watchprops 等也会按照类似的方式合并。
2. 局部混入

局部混入的作用范围仅限于当前组件及其子组件,而全局混入会影响所有组件。

3. 注意事项
  • 局部混入的优先级:局部混入的优先级高于全局混入,但组件自身的选项优先级最高。

强制更新

vue3中没有vue2的$forceUpdate,但可以通过一下方式实现

  • 通过改变组件的 key,可以强制 Vue 重新渲染组件。<ChildComponent :key="componentKey" />

  • 使用 nextTick 强制触发更新

import { nextTick } from "vue";

export default {
  setup() {
    const forceUpdate = async () => {
      await nextTick(); // 等待 DOM 更新完成
      // 重新触发更新逻辑
    };

    return { forceUpdate };
  }
};

vue2和vue3的区别

Vue 3 与 Vue 2 的主要区别:

1. 响应式系统
  • Vue 2

    • 使用 Object.defineProperty 实现响应式系统。
    • 只能劫持对象的属性(data 中的字段),无法监听数组索引或对象属性的动态添加。
  • Vue 3

    • 使用 Proxy API 实现响应式系统,这是 ES6 提供的更强大的代理机制。
    • 能够监听对象属性的动态添加、删除,以及数组索引的变化。
2. 性能优化
  • Vue 2

    • 使用虚拟 DOM(VNode)进行渲染,但渲染逻辑相对复杂。
    • 在大规模应用中,性能可能受限于渲染效率。
  • Vue 3

    • 重构了渲染器,引入了新的 Fiber 架构,类似于 React 16 的 Fiber 架构。
    • 支持增量渲染,即可以将渲染任务拆分为多个小任务,避免阻塞主线程。
3. Composition API
4. 生命周期钩子
5. 片段(Fragments)
  • Vue 2

    • 组件必须有一个根元素。
  • Vue 3

    • 支持片段(Fragments),允许组件返回多个根节点。
6. 异步组件
  • Vue 2

    • 异步组件通过工厂函数实现,返回一个 Promise。
    • 示例:
      const AsyncComponent = () => ({
             
        component: impor

相关文章:

  • Devart dbForge Studio for MySQL Enterprise 9.0.338高效数据库管理工具
  • 在线SQL转ArkTs
  • PTA 7-6 列出连通集
  • Terraform 中安全地更改 EC2 实例 instance_type 的指南
  • idea 复制代码时不带富文本背景色
  • 记录一个Circle CI出现的错误
  • 全员DeepSeek时代,前端能做些什么?
  • 捣鼓180天,我写了一个相册小程序
  • 快速从C过度C++(二):引用,内联函数,nullptr
  • 通过u-boot启动Linux时的根文件系统挂载流程(init进程可能会进行二次挂载)
  • 前端实现版本更新自动检测✅
  • Redis渐进式遍历数据库
  • Mybatis中的分页操作,如何使用PageHelper进行分页,以及Spring Boot整合Mybatis Plus分页
  • Flink深入浅出之02:编程模型、数据源、算子、connector
  • 单片机中的基础外设GPIO的知识和应用—(6)
  • 门面设计模式和适配器模式有什么区别
  • 接口测试之curl命令详解
  • 自注意力机制的演进-从Transformer架构到DeepSeek-R1模型的深度语义理解革新
  • 双足机器狗开发:Rider - Pi
  • Wireshark的OSPF报文抓包和分析(单区域ospf实验)
  • 石药网站/小程序开发模板
  • 宝塔区政府门户网站集约化建设中标/如何自己开发网站
  • 深圳外网站建设/最新新闻国内大事件
  • 在网上可以做宣传的有那些网站/网络广告的概念
  • 永康做网站/关键词排名关键词优化
  • 宝塔做的网站网页打不开/百度竞价推广的技巧