vue知识点总结

Vue 核心概念

响应式数据

Vue 通过 Object.defineProperty 或 Proxy(Vue 3)实现数据响应式。当数据变化时,视图自动更新。

模板语法

支持插值表达式 {``{ data }}、指令(如 v-ifv-for)和动态属性绑定 v-bind(简写 :)。

指令

  • v-model:双向数据绑定,常用于表单元素。
  • v-on:事件绑定(简写 @),如 @click="handler"
  • v-for:循环渲染,需配合 :key 提升性能。

计算属性与侦听器

  • computed:基于依赖缓存,适合复杂逻辑计算。
  • watch:监听数据变化,适合异步操作或副作用处理。

组件化开发

组件通信

  • Props:父组件向子组件传递数据。
  • 自定义事件 :子组件通过 $emit 触发父组件监听的事件。
  • Provide/Inject:跨层级组件通信。
  • Vuex/Pinia:状态管理库,解决复杂组件共享状态问题。

生命周期钩子

  • Vue 2createdmountedupdateddestroyed 等。
  • Vue 3setup 替代部分钩子,新增 onMounted 等组合式 API。

高级特性

插槽(Slot)

  • 默认插槽:<slot></slot>
  • 具名插槽:<slot name="header"></slot>,使用 v-slot:header#header
  • 作用域插槽:子组件传递数据给父组件。

动态组件

通过 <component :is="currentComponent"></component> 动态切换组件。

异步组件

使用 defineAsyncComponent 或动态 import() 实现按需加载。

Vue 3 新特性

组合式 API

  • refreactive 创建响应式数据。
  • setup 函数整合逻辑,替代 datamethods 等选项。
  • watchEffect 自动追踪依赖并执行副作用。

Composition API 工具

  • toRefs:解构响应式对象不丢失响应性。
  • computedwatch 与 Vue 2 类似,但更灵活。

性能优化

虚拟 DOM 与 Diff 算法

Vue 通过虚拟 DOM 减少直接操作 DOM,优化渲染性能。

Key 的作用

v-for 中使用唯一 key 帮助 Vue 高效复用节点。

懒加载与代码分割

结合路由懒加载(() => import('./Component.vue'))减少首屏加载时间。

常见问题与技巧

Vue 2 与 Vue 3 差异

  • Vue 3 使用 Proxy 实现响应式,支持多个根节点,移除 filters
  • 生命周期钩子命名变化(如 beforeDestroybeforeUnmount)。

调试工具

  • Vue Devtools:浏览器插件,用于检查组件树、状态和事件。

代码规范

  • 组件名采用 PascalCase(如 MyComponent.vue)。
  • 单文件组件(SFC)结构清晰,分块 <template><script><style>

以上内容可结合官方文档和实际项目实践深入理解。

相关推荐
To_OC3 小时前
面试被问了三回三栏布局,这次我终于把 BFC 那层窗户纸捅破了
前端·css·面试
To_OC4 小时前
啃完 TS 工具类型我发现:Pick 和 Omit 原来就是一层窗户纸
前端·面试·typescript
风月说与山鬼5 小时前
三、大括号语法
前端·react.js
kyriewen5 小时前
我把最常踩的8个CORS跨域报错整理了一遍——第8个去年还不存在
前端·javascript
Csvn6 小时前
🕰️ 闭包 + setTimeout 的 5 个经典陷阱:为什么定时器看到的永远不是最新的值?
前端
lilian2336 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
CarIise7 小时前
CSS选择器与样式关联
前端·css·tensorflow
里欧跑得慢8 小时前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js
IT_陈寒8 小时前
Vue的computed属性把我坑惨了,原来我一直用错姿势
前端·人工智能·后端