• Vue 3入门指南



    title: Vue 3入门指南
    date: 2024/5/23 19:37:34
    updated: 2024/5/23 19:37:34
    categories:

    • 前端开发

    tags:

    • 框架对比
    • 环境搭建
    • 基础语法
    • 组件开发
    • 响应式系统
    • 状态管理
    • 路由配置

    image

    第1章:Vue 3简介

    1.1 Vue.js的历史与发展

    Vue.js由前谷歌工程师尤雨溪(Evan
    You)在2014年发布。它的设计目标是提供一个轻量级、渐进式的JavaScript框架,用于构建用户界面。Vue的核心库专注于视图层,易于上手,同时也便于与第三方库或既有项目整合。随着时间的推移,Vue.js因其简洁的API、灵活的组件系统和高效的性能而受到开发者的广泛欢迎。

    1.2 Vue 3的新特性

    Vue 3在2020年发布,带来了许多重要的更新和改进:

    • Composition API:提供了一种更灵活的方式来组织和重用组件逻辑,特别是在处理复杂组件时。
    • 性能提升:通过优化虚拟DOM的算法和编译时的优化,Vue 3在渲染大型应用时更加高效。
    • 更好的TypeScript支持:Vue 3的内部架构完全使用TypeScript重写,提供了更好的类型推断和集成。
    • Fragments:允许组件返回多个根节点,而不需要额外的包装元素。
    • Teleport(传送门) :允许将组件的内容渲染到DOM中的不同位置。
    • Suspense:一种新的内置组件,用于处理异步组件的加载状态。
    • 响应式系统的重构:使用Proxy替代了Object.defineProperty,提高了响应式系统的性能和功能。

    1.3 Vue 3与其他框架的比较

    Vue 3与其他流行的前端框架(如React和Angular)相比,有其独特的优势和差异:

    • React:React是一个由Facebook开发的库,以其高效的虚拟DOM算法和组件化开发模式而闻名。Vue
      3提供了更简单的API和更直观的模板语法,而React则依赖于JSX。Vue 3的Composition API在某些方面类似于React的Hooks,但提供了更多的灵活性和控制。
    • Angular:Angular是一个由Google开发的全功能框架,提供了大量的内置功能,如依赖注入、表单处理和路由。Vue
      3相比之下更加轻量级,易于上手,但仍然提供了足够的工具和库来构建复杂的应用。Angular的学习曲线较陡峭,而Vue 3则更加平滑。

    每个框架都有其适用的场景和优势,选择哪个框架通常取决于项目需求、团队熟悉度和个人偏好。Vue 3因其平衡的性能、灵活性和易用性,成为了许多开发者的首选。

    第2章:环境搭建与项目初始化

    2.1 安装Node.js和npm

    Node.js是一个开源的JavaScript运行环境,它允许在服务器端运行JavaScript代码。npm(Node Package
    Manager)是随Node.js一同发布的包管理器,用于安装和管理JavaScript项目的依赖。如果你尚未安装,可以访问官方网站(https://nodejs.org/)下载适合你操作系统的安装包。安装完成后,可以通过命令行验证Node.js和npm是否已安装:

    node -v  # 显示Node.js版本
    npm -v  # 显示npm版本
    
    

    2.2 安装Vue CLI

    Vue CLI(Vue Create App)是Vue.js官方推荐的项目初始化工具,它能快速创建并配置Vue 3项目。在终端或命令提示符中,运行以下命令安装Vue
    CLI全球:

    npm install -g @vue/cli
    
    

    或者使用yarn:

    yarn global add @vue/cli
    
    

    安装完成后,可以使用vue create命令创建新项目。

    2.3 创建Vue 3项目

    创建新项目时,可以使用以下命令,其中my-project是你的项目名:

    vue create my-project
    
    

    它会询问你选择哪些特性,如是否包含路由、Vuex和测试等。选择完成后,Vue CLI会自动下载并配置项目。

    2.4 项目结构概览

    Vue CLI生成的项目结构通常包含以下主要部分:

    • src/:源代码目录,包含应用的核心逻辑和组件。

      • main.js:入口文件,启动应用。
      • components/:存放应用的组件。
      • views/(或pages/):存放应用的主要视图或页面。
      • router/:存放应用的路由配置。
    • public/:静态资源目录,如HTML、CSS和JavaScript文件。

    • package.json:项目依赖和配置信息。

    • .env(或.env.production):环境变量配置文件。

    • vue.config.js:自定义配置文件,用于调整构建设置。

    在开发过程中,你可以根据需要添加、修改或删除这个结构中的文件和目录。Vue CLI会根据这些结构生成构建过程,确保项目的可维护性和扩展性。

    第3章:Vue 3基础

    3.1 Vue实例与生命周期

    在Vue中,每个应用都是通过创建Vue实例来启动的。Vue实例是Vue应用的根组件,它包含了数据、模板、挂载元素、方法、生命周期钩子等选项。生命周期钩子是Vue实例在创建、更新和销毁过程中自动调用的函数,允许你在特定阶段执行自定义逻辑。

    例如,created钩子在实例被创建后立即调用,而mounted钩子在实例挂载到DOM后调用。

    new Vue({
        data: {
            message: 'Hello Vue!'
        },
        created() {
            console.log('实例创建完成');
        },
        mounted() {
            console.log('实例已挂载到DOM');
        }
    });
    
    

    3.2 模板语法

    Vue使用基于HTML的模板语法,允许开发者声明式地将DOM绑定到底层Vue实例的数据。Vue模板是语法层面的纯粹HTML,会被Vue解析器解析为渲染函数,生成虚拟DOM并最终渲染成真实DOM。

    
    
    {{ message }}

    3.3 数据绑定与响应式原理

    Vue的核心特性之一是响应式数据绑定。当实例的数据发生变化时,视图会自动更新。这是通过使用ES5的Object.defineProperty
    方法将数据属性转换为getter/setter来实现的。

    new Vue({
        data: {
            message: 'Hello Vue!'
        }
    });
    
    

    3.4 计算属性与侦听器

    计算属性是基于它们的依赖进行缓存的,只有在相关依赖发生改变时才会重新求值。这使得计算属性在处理复杂逻辑时比普通方法更高效。

    new Vue({
        data: {
            firstName: 'Foo',
            lastName: 'Bar'
        },
        computed: {
            fullName() {
                return this.firstName + ' ' + this.lastName;
            }
        }
    });
    
    

    侦听器(watch)用于观察和响应Vue实例上的数据变动。当你有一些数据需要随着其他数据变动而变动时,使用侦听器非常合适。

    new Vue({
        data: {
            message: 'Hello Vue!'
        },
        watch: {
            message(newVal, oldVal) {
                console.log('Message changed:', newVal, oldVal);
            }
        }
    });
    
    

    3.5 条件渲染与列表渲染

    Vue提供了v-ifv-elsev-show指令来控制元素的显示与隐藏。v-if在条件变化时会完全移除或插入元素,而v-show
    只是简单地切换元素的CSS属性display

    
    
    现在你看到我了
    现在你看到我了

    列表渲染通过v-for指令实现,它可以遍历数组、对象甚至整数。

    
    
    • {{ item.text }}

    3.6 事件处理

    Vue使用v-on指令(简写为@)来监听DOM事件,并在触发时执行一些JavaScript代码。

    
    
    
    

    3.7 表单输入绑定

    Vue提供了v-model指令,用于在表单控件(如