欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > Vue简介

Vue简介

2025/11/10 11:05:39 来源:https://blog.csdn.net/zxz86/article/details/147984109  浏览:    关键词:Vue简介

Vue.js是一款渐进式 JavaScript 框架,由尤雨溪于2014年创建,专门用于构建用户界面的渐进式 JavaScript 框架。与其他大型框架不同,Vue 设计的初衷是可以逐步引入。它的核心库只关注视图层,易于上手,同时也非常适合单页应用(SPA)的开发。

  • 渐进式框架:可逐步集成到现有项目,也可构建完整单页应用

  • 组件化开发:通过.vue单文件组件实现高内聚、低耦合

  • 响应式系统:自动追踪数据变化并更新视图

  • 虚拟 DOM:优化渲染性能的差异化更新机制

  • 是基于 Object.defineProperty 实现数据劫持,通过 getter/setter 自动追踪依赖

  • 存在对数组方法和对象属性增减的监测限制

虚拟 DOM

  • 使用轻量级虚拟 DOM 进行差异比对

  • 通过高效的 diff 算法最小化 DOM 操作

优点:

渐进式框架:Vue 可以作为一个简单的库引入到项目中,也可以扩展为一个功能齐全的框架。你可以根据需要逐步引入 Vue 的功能。
双向数据绑定:Vue 提供了简洁的双向数据绑定机制,使得视图和数据能够保持同步。
组件化:Vue 的组件系统允许开发者构建可复用的自定义元素,使得应用的开发和维护更加方便。
虚拟 DOM:Vue 使用虚拟 DOM 来优化性能,通过最小化实际 DOM 操作,提高渲染效率。
易于集成:Vue 可以轻松集成到现有项目中,也可以与其他库或框架结合使用。
缺点:

生态系统不够完善
可扩展性稍差
SPA(单页面应用)介绍:多页面应用有多个html文件,通过a标签的连接联通各个页面

开发起来太冗余,编译、压缩很耗时间
页面之间的跳转速度太慢,这个时候就会出现一个严重的问题,白屏
单页面应用(SPA)

不需要刷新页面,因为它就是一个页面
这个页面内容在切换
单页面内容之间的切换要想实现我们就是用路由了
如今我们的app、后台管理系统 ,可视化主要的开发形式就是spa

局限性

  1. 响应式系统对 ES6+ 数据结构支持有限

  2. 代码组织在大型项目中易显臃肿

  3. TypeScript 支持不如 Vue 3 完善

 Vue 3 于 2020 年 9 月发布,是 Vue.js 的重大升级版本,主要改进包括性能优化、新特性引入和更好的 TypeScript 支持。

1. Composition API

  • 目的:解决逻辑复用和代码组织问题(替代 Options API 的局限性)。

  • 核心:通过 setup() 函数组织代码,支持逻辑的灵活组合。

  • import { ref, computed } from 'vue';

    export default {
      setup() {
        const count = ref(0);
        const double = computed(() => count.value * 2);
        const increment = () => count.value++;
        return { count, double, increment };
      }
    };

  • 逻辑复用更简单(如使用 useFetch 自定义 Hook)。

  • 代码按功能而非选项(data、methods)组织,提升可读性。

2.性能优化:

  • 渲染快,虚拟 DOM 重写(优化 diff 算法),静态节点提升(Static Hoisting)和补丁标记(Patch Flags),减少运行时开销。

  • 体积小:核心库体积减少约 40%(Tree-shaking 支持,按需引入模块)。

3.更好的 TypeScript 支持:源码使用 TypeScript 重写,提供完整的类型定义,开发体验更友好,IDE 提示更精准。

4. 新内置组件与 API

Teleport:将组件渲染到 DOM 任意位置(如模态框、Toast)。

<teleport to="#modal-container">
  <div class="modal">内容</div>
</teleport>

Suspense:优雅处理异步组件加载状态。

Fragment:支持多根节点模板。

自定义渲染器:支持非 DOM 环境(如 Canvas、WebGL)。

5.响应式系统升级

  • Proxy 替代 Object.defineProperty:支持数组和对象的新增/删除属性监听,性能更高,无需递归初始化。

  • 独立的响应式 API:

    import { reactive, effect } from 'vue';
    const state = reactive({ count: 0 });
    effect(() => console.log(state.count)); // 自动追踪依赖

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词