神族九帝's blog 神族九帝's blog
首页
网盘 (opens new window)
线报 (opens new window)
商城 (opens new window)
  • 复习指导
  • HTML
  • CSS
  • JavaScript
  • 设计模式
  • 浏览器
  • 手写系列
  • Vue
  • Webpack
  • Http
  • 前端优化
  • 项目
  • 面试真题
  • 算法
  • 精选文章
  • 八股文
  • 前端工程化
  • 基础篇
  • 进阶篇
  • 高级篇
  • 计算机基础
  • 高频考点
  • 精简题
  • 综合问题
  • 复习题
  • vue
  • vue2源码学习
  • 剖析vuejs内部运行机制
  • TypeScript 入门实战笔记
  • vue3源码学习
  • 2周刷完100道前端优质面试真题
  • npm发包
  • 重学node
  • 前端性能优化方法与实战
  • webpack原理与实战
  • webGl
  • 前端优化
  • Web3
  • 更多
  • 网站
  • 资源
  • Vue资源
  • 收藏的一些API
  • 未来要做的事
  • 宝塔面板+青龙面板
  • 安卓手机当服务器使用
  • 京东自动评价代码
  • 搭建x-ui免流服务器(已失效)
  • 海外联盟
  • 好玩的docker
  • 导航
GitHub (opens new window)

神族九帝,永不言弃

首页
网盘 (opens new window)
线报 (opens new window)
商城 (opens new window)
  • 复习指导
  • HTML
  • CSS
  • JavaScript
  • 设计模式
  • 浏览器
  • 手写系列
  • Vue
  • Webpack
  • Http
  • 前端优化
  • 项目
  • 面试真题
  • 算法
  • 精选文章
  • 八股文
  • 前端工程化
  • 基础篇
  • 进阶篇
  • 高级篇
  • 计算机基础
  • 高频考点
  • 精简题
  • 综合问题
  • 复习题
  • vue
  • vue2源码学习
  • 剖析vuejs内部运行机制
  • TypeScript 入门实战笔记
  • vue3源码学习
  • 2周刷完100道前端优质面试真题
  • npm发包
  • 重学node
  • 前端性能优化方法与实战
  • webpack原理与实战
  • webGl
  • 前端优化
  • Web3
  • 更多
  • 网站
  • 资源
  • Vue资源
  • 收藏的一些API
  • 未来要做的事
  • 宝塔面板+青龙面板
  • 安卓手机当服务器使用
  • 京东自动评价代码
  • 搭建x-ui免流服务器(已失效)
  • 海外联盟
  • 好玩的docker
  • 导航
GitHub (opens new window)
  • vue2源码学习

  • 剖析vuejs内部运行机制

  • TypeScript 入门实战笔记

  • vue3源码学习

  • 2周刷完100道前端优质面试真题

  • npm发包

  • 重学node

  • 前端性能优化方法与实战

  • webpack原理与实战

    • 开篇词:Webpack 现代化前端应用的基石
    • 第01讲:Webpack 究竟解决了什么问题?
    • 第02讲:如何使用 Webpack 实现模块化打包?
    • 第03讲:如何通过 Loader 实现特殊资源加载?
    • 第04讲:如何利用插件机制横向扩展 Webpack 的构建能力?
    • 第05讲:探索 Webpack 运行机制与核心工作原理
    • 第06讲:如何使用 Dev Server 提高你的本地开发效率?
    • 第07讲:如何配置 Webpack SourceMap 的最佳实践?
    • 第08讲:如何让你的模块支持热替换(HMR)机制?
    • 第09讲:Tree Shaking 和 sideEffects
    • 第10讲:Code Splitting(分块打包)
    • 第11讲:如何优化Webpack的构建速度和打包结果
    • 第12讲:如何选择打包工具:Rollup 和 Webpack ?
    • 第13讲:如何使用 Parcel 零配置完成打包任务?
    • 加餐:Vue3 到底带来了哪些变化
    • webGl

    • 前端优化

    • Web3

    • 更多

    • 学习笔记
    • webpack原理与实战
    wu529778790
    2021-11-09

    加餐:Vue3 到底带来了哪些变化

    在 4 月 22 日的直播中,我就 “Vue.js 3.0 到底带来了哪些变化?” 这个话题,分享了一些自己的看法。在这里我做了一篇内容梳理,希望对你有所帮助。如果你想要了解直播当天的详细内容,可以观看本课时的视频或者音频内容。

    今天的内容会分为以下五个部分:

    • Composition APIs;
    • 设计动机 / 核⼼优势;
    • 基于 Webpack 构建;
    • Vue CLI experimental;
    • Official Libraries。

    首先,我们先回顾一下 Vue 的发展历程:

    • 2018-09-30:Vue.js 2.0 两周年,公开宣布 Vue.js 3.0 开发计划;
    • 2019-10-05:Vue.js 3.0 公开源代码;
    • 2019-12-20:Vue.js 发布 3.0-alpha.0 版本;
    • 2020-04-17:Vue.js 发布 3.0-beta.1 版本;
    • 2020-01-05:vue-cli-plugin-vue-next v0.0.2;
    • 2020-02-18:vue-router-next v4.0.0-alpha.0;
    • 2020-03-14:eslint-plugin-vue v7.0.0-alpha.0;
    • 2020-03-15:vuex v4.0.0-alpha.1;
    • 2020-04-12:vue-test-utils-next v2.0.0-alpha.1。

    这里我希望你要了解:

    • 新版本发布固然有它的优势,但是并不一定所有的企业都会立即采用;
    • 新版本的发布不代表老版本已经一无是处,版本的迭代更新是一个必然发展状态,但它会带动起来一些周边的生态发展。

    快速体验 Composition APIs

    vs. Options APIs

    如下图所示:

    image.png

    Vue.js 3.0 核⼼优势:

    • 没有 this,没烦恼;
    • 更好的类型推导能⼒(TypeScript);
    • 更友好的 Tree-shaking ⽀持(渐进式体验);
    • 更⼤的代码压缩空间;
    • 更灵活的逻辑复⽤能⼒。

    逻辑复用案例

    对于逻辑复用这块我们可以通过几个小案例来体会一下。

    案例一、常用功能性状态复用:

    image (1).png

    案例二、获取数据逻辑复用:

    image (2).png

    案例三、BOM API 封装:

    image (3).png

    基于 Webpack 构建

    由于 Vue CLI 自身还没有很好的支持 Vue.js 3.0 版本,所以对于 3.0 项目的构建,我们还是需要直接使用 Webpack 构建。这里我们分享一个基于 Webpack 构建 Vue.js 3.0 的基本操作。

    以下是具体命令行操作:

    image (4).png

    项目结构设计如下:

    └─ vue-next-sample ····························· project root 
       ├─ public ··································· static dir 
       │  └─ index.html ···························· index template 
       ├─ src ······································ source dir 
       │  ├─ App.vue ······························· root component (sfc) 
       │  └─ main.js ······························· app entry 
       ├─ package.json ····························· package file 
       └─ webpack.config.js ························ webpack config
    

    其中 Webpack 的核心配置如下:

    image (5).png

    基于 Vue CLI experimental

    Vue CLI 对 Vue.js 3.0 的支持目前是以一个插件(vue-cli-plugin-vue-next)的形式实现的,目前属于实验阶段(experimental)。

    具体使用方法如下:

    image (6).png

    这里你需要注意,千万不要在成熟项⽬中使⽤这个插件直接升级项目,这会导致很多问题,后面 Vue 官方会给出 2.x 项目升级到 3.0 的迁移工具,到时候再视情况决定是否使用。

    结合 Official Libraries

    最后这一块内容是关于官方的几个库的最新版本,以及如何去结合 Vue.js 3.0 使用:

    Vue Router

    vue-router 一直以来是使用 Vue.js 开发 SPA 类型应用必不可少的,针对 3.0,vue-router 也有一些调整。

    注册(定义)路由的用法:

    image (7).png

    组件中获取当前路由信息的方法:

    image (8).png

    Vuex

    对于 Vuex,API 改动是最小的,基本上没有什么变化。

    创建 Store 的方法:

    image (9).png

    组件中使用 Store 的方式一(跟 2.x 一样):

    image (10).png

    方式二,使用 useStore API(推荐):

    image (11).png

    除此之外,Vue.js 官方还给出了目前官方的一些周边库的状态,下表为:Official Libraries Vue 3.0 Support Status

    Project Status
    vue-router Alpha [Proposed RFCs] [GitHub] [npm]
    vuex Alpha, with same API [GitHub] [npm]
    vue-class-component Alpha [GitHub] [npm]
    vue-cli Experimental support via vue-cli-plugin-vue-next
    eslint-plugin-vue Alpha [GitHub] [npm]
    vue-test-utils Pre-alpha [GitHub] [npm]
    vue-devtools WIP
    jsx WIP

    # 精选评论

    # kvsur:

    请问截图里面的三等号是什么插件啊?😀

    #     讲师回复:

        我用的是 Fira Code 这种编程专用字体,这种字体有连体特性

    编辑 (opens new window)
    上次更新: 2021/11/09, 23:00:50
    第13讲:如何使用 Parcel 零配置完成打包任务?
    思维导图

    ← 第13讲:如何使用 Parcel 零配置完成打包任务? 思维导图→

    最近更新
    01
    好玩的docker
    07-04
    02
    我的第一个NFT
    07-03
    03
    海外迅雷
    06-01
    更多文章>
    Power by vuepress | Copyright © 2015-2023 神族九帝
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×