Vue全家桶系列【系統搭建中.....】


一. 簡介

 1. 說明

  Vue (讀音 /vjuː/,類似於 view) 是一套用於構建用戶界面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注視圖層,不僅易於上手,還便於與第三方庫或既有項目整合。另一方面,當與現代化的工具鏈以及各種支持類庫結合使用時,Vue 也完全能夠為復雜的單頁應用提供驅動。

Vue2.x :

  官網地址:https://cn.vuejs.org/

  GitHub地址:https://github.com/vuejs/vue

  CDN地址:https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Vue3.x:

  官網地址:https://v3.cn.vuejs.org/  

  GitHub地址:https://github.com/vuejs/vue-next

  CDN地址:<script src="https://unpkg.com/vue@next"></script>

2. MVVM模型

(1). MVC和MVVM都是一種軟件的體系結構

 MVC是Model – View –Controller的簡稱,是在前期被使用非常框架的架構模式,比如iOS、前端;

 MVVM是Model-View-ViewModel的簡稱,是目前非常流行的架構模式;

(2). 通常情況下,我們也經常稱Vue是一個MVVM的框架。

 Vue官方其實有說明,Vue雖然並沒有完全遵守MVVM的模型,但是整個設計是受到它的啟發的  (Dom部分是View,Script部分中代碼是Model,Vue是VM)

 

3. Vue2快速入門

(1). 代碼實操

<body>
    <div id="app">
        {{message}}
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue2!'
            }
        })
    </script>
</body>

(2). 運行結果

3. Vue3快速入門

(1). 代碼實操

<body>
    <div id="app">{{message}}</div>
    <script src="https://unpkg.com/vue@next"></script> 
    <script>
         Vue.createApp({
             data() {
                return {
                  message: 'Hello Vue3!'
                }
             }
         }).mount('#app');        
    </script>
</body>

(2). 運行結果

 

二. 走向Vue3

1.  源碼

(1). 源碼通過monorepo的形式來管理源代碼:

 Mono:單個

 Repo:repository倉庫

 主要是將許多項目的代碼存儲在同一個repository中;

 這樣做的目的是多個包本身相互獨立,可以有自己的功能邏輯、單元測試等,同時又在同一個倉庫下方便管理;

 而且模塊划分的更加清晰,可維護性、可擴展性更強;

(2). 源碼使用TypeScript來進行重寫:

 在Vue2.x的時候,Vue使用Flow來進行類型檢測;

 在Vue3.x的時候,Vue的源碼全部使用TypeScript來進行重構,並且Vue本身對TypeScript支持也更好了;

2. 性能

(1). Vue3 使用Proxy進行數據劫持

 在Vue2.x的時候,Vue2是使用Object.defineProperty來劫持數據的getter和setter方法的;這種方式一致存在一個缺陷就是當給對象添加或者刪除屬性時,是無法劫持和監聽的;所以在Vue2.x的時候,不得不提供一些特殊的API,比如$set或$delete,事實上都是一些hack方法,也增加了開發者學習新的API的成本;

 而在Vue3.x開始,Vue使用Proxy來實現數據的劫持,這個API的用法和相關的原理我也會在后續講到;

(2). 刪除了一些不必要的API:

 移除了實例上的$on, $off 和 $once;

 移除了一些特性:如filter、內聯模板等;

(3). 包括編譯方面的優化:

 生成Block Tree、Slot編譯優化、diff算法優化;

3. 新Api

(1). 由Options API 到 Composition API:

 在Vue2.x的時候,我們會通過Options API來描述組件對象;Options API包括data、props、methods、computed、生命周期等等這些選項;存在比較大的問題是多個邏輯可能是在不同的地方:比如created中會使用某一個method來修改data的數據,代碼的內聚性非常差;

 在Vue3.x的時候,Composition API可以將 相關聯的代碼 放到同一處 進行處理,而不需要在多個Options之間尋找;

(2). Hooks函數增加代碼的復用性:

 在Vue2.x的時候,我們通常通過mixins在多個組件之間共享邏輯;但是有一個很大的缺陷就是 mixins也是由一大堆的Options組成的,並且多個mixins會存在命名沖突的問題;

 在Vue3.x中,我們可以通過Hook函數,來將一部分獨立的邏輯抽取出去,並且它們還可以做到是響應式的;

 

 如何從Vue2遷移到Vue3,詳見下面官方文檔:

  https://v3.cn.vuejs.org/guide/migration/introduction.html

 

三. 目錄

 

階段一:Vue2.x用法

  第一節:Vuejs入門之各種指令

  第二節:  Vuejs常用特性1

  第三節:Vuejs常用特性2和圖書案例

  第四節:Vuejs組件及組件之間的交互

  第五節:  前后端交互之Promise用法和Fetch用法

  第六節:前后端交互之axios用法及async異步編程

  第七節:Vuejs路由交互及后台系統路由案例

  第八節:Vue Cli簡介/安裝、兩種Create項目的方式、相關配置說明

  第九節:Vuex簡介、基本使用、核心功能(State、Mutation、Action、Getter) 和 案例實戰演練

  第十節:基於Vuex實現數據的增刪改查的案例剖析分享

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

階段二:Vue2.6.11 + Vue-Router3.2 + ElementUI2.15.1 + Vuex 全家桶

  第一節:項目初始化(ElementUI、axios)、Git版本管理、基本環境搭建

  第二節:基礎配置(路由、less、靜態資源、axios、ESLint)、基礎組件(Form、Message) 之登錄頁面搭建

  第三節:基礎組件(Container布局、NavMenu導航) 之 系統主頁面搭建

  第四節:基礎組件(Breadcrumb、Card、Input、Dialog、Switch、Select、MessageBox) 之 用戶管理

  第五節:基礎組件(Table、Pagination、Tree、Tag) 之 角色/權限管理

  第六節:基礎組件(Cascader/Tab/Steps/Upload/TimeLine/alert) 之 參數/商品/訂單

  第七節:擴展組件(lodash/富文本/echart/nprogress) 和 幫助類(日期格式化)

  第八節:項目優化上線之打包、報告分析、刪除console、webpack配置、CDN、首頁定制、路由懶加載、Express部署和管理

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

階段三:Vue3.x全家桶

  第一節:代碼片段制作、template幾種寫法、各種場景下的this剖析

  第二節:Vue3向下兼容1(Mustcache v-once text html pre cloak v-bind v-on v-if v-show等等)

  第三節:Vue3向下兼容2(v-for、數組方法、v-model、計算屬性、監聽器)

  第四節:從源碼角度剖析key在diff算法中的作用和Computed源碼剖析--未完

  第五節:補充引用類型賦值、淺拷貝、深拷貝、判斷中的隱式轉化

  第六節:Vue Cli的使用復習 和 Vite入門使用

  第七節:組件入門使用、組件通訊剖析(父傳子、子傳父、爺傳孫、兄弟/任意組件)、對比Vue2.x的傳值

  第八節:插槽的基本用法、剖析具名插槽、作用域插槽的使用

  第九節:動態組件和keep-alive緩存、webpack分包和異步組件、引用元素/組件($ref)、組件生命周期、組件v-model

  第十節:復習mixin/extends 和 開啟Vue3的Composition Api(setup、reactiveApi、refApi、readonly)

  第十一節:Vue3的Composition Api(toRefs/toRef、customerRef、computed、watchEffect【setup中獲取ref】、watch)

  第十二節:Vue3的Composition Api(生命周期、provide/Inject、綜合練習-hook封裝) 和 setup頂層開發模式

  第十三節:Vue3高級之 render/h函數、jsx、自定義指令、teleport、插件

  第十四節:VueRouter4.x簡介、基本用法、路由懶加載(打包分析)、動態路由、路由嵌套、相關Api

  第十五節:VueRouter4.x用法之router-link/router-view的v-slot、動態增刪路由、路由導航守衛

  第十六節:Vuex4.x 簡介及state、getters、mutations、actions詳解(OptionApi 和 CompositionApi)

  第十七節:Vuex4.x 之Module詳解(局部狀態、命名空間、輔助函數等) 和 補充nexttick用法

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

階段四:Webpack5系列

  第一節:Webpack簡介、安裝-配置-打包、常用loader的使用(css/style/less/postcss-loader)

  第二節:Webpack資源模塊(替代file/url-loader)、插件使用(Clean/Html/Define/Copy)、mode的配置說明

  第三節:Babel的使用、Webpack集成Babel、單文件Vue打包

  第四節:Webpack本地服務器搭建、剖析devServer的HRM熱替換和其它配置、resolve模塊解析、區分開發/生產環境方案實戰

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

階段五:基於Vue3.x全家桶的管理系統搭建

  第一節:項目創建和各種配置規范(editorconfig、prettier、eslint、.browserslistrc、tsconfig、git等)

  第二節:第三方庫集成和配置(webpack、element-plus、axios、vscode、區分不同環境)

  第三節:登錄頁面搭建(xxx)--未完

  第四節:主頁面的搭建和動態路由的配置--未完

  第五節:面包屑、搜索框、表格的封裝和搭建--未完

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

  第X節:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

 

 

 

 

 

 

 

 

 

 

 

!

  • 作       者 : Yaopengfei(姚鵬飛)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 聲     明1 : 如有錯誤,歡迎討論,請勿謾罵^_^。
  • 聲     明2 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM