Vue3_2024_1天【Vue3創建和響應式,對比Vue2】

前言:

Vue3對比Vue2版本,它在性能、功能、易用性和可維護性方面都有顯著的提升和改進。
性能優化:模板編譯器的優化、對Proxy的支持以及使用了更加高效的Virtual DOM算法等。這使得Vue3的打包大小減少了41%,初次渲染提速55%,更新渲染提速133%,內存減少54%,比Vue2更快將近兩倍。
源碼升級:Vue3使用Proxy代替defineProperty實現響應式,重寫了虛擬DOM的實現和采用了Tree-Shaking技術,從而幫助減小了包的大小。
更好的TypeScript支持:Vue3提供了更好的TypeScript支持,包括類型定義文件,以幫助開發者在編碼過程中更好地進行類型檢查。
新的API和特性:Vue3引入了Composition API(組合式API),這是一種新的API風格,使開發者更容易組織和重用組件邏輯。此外,Vue3還提供了新的內置組件,如Fragment、Teleport和Suspense,以及新的生命周期鉤子、data選項應始終被聲明為一個函數、移除keyCode支持作為v-on的修飾符等。

一. Vue3創建項目主要有兩種方式如下,(VUe2一般使用腳手架創建項目)

1.1 使用Vue CLI創建項目:(不推薦)

  1. 首先,確保你的@vue/cli版本在4.5.0以上。你可以通過運行vue --version來檢查版本。如果版本過低,可以通過運行npm install -g @vue/cli來更新Vue CLI。
  2. 使用vue create 項目名稱命令來創建一個新的Vue 3項目。例如,vue create my-vue3-app。
  3. 在創建項目的過程中,你將看到一個選項列表,其中包括一些預設的配置選項,如Babel、Router、Vuex、CSS預處理器和Lint/Formatter等。根據你的需求選擇這些選項。
  4. 創建項目后,進入項目目錄并運行npm run serve來啟動你的Vue 3應用。

1.2 使用Vite創建項目:(推薦)

  1. 首先,安裝Vite。你可以通過運行npm install -g create-vite-app來全局安裝Vite。
  2. 使用create-vite-app 項目名稱命令來創建一個新的Vue 3項目。例如,create-vite-app my-vue3-app。
  3. 進入項目目錄并運行npm install來安裝項目依賴。
  4. 最后,運行npm run dev來啟動你的Vue 3應用。
    在這里插入圖片描述

需要注意的是,Vite不基于webpack,因此它的構建速度更快(先啟動在加載解析或處理,反之webpack需要加載所有文件處理解析完畢后才啟動,所以啟動速度要慢),體積更小。但是,Vite目前僅支持Vue 3.x,不支持Vue 2.x,并且目前還不是很穩定,正在完善中。因此,在選擇使用哪種方式創建Vue 3項目時,你需要根據你的需求和實際情況來做出決定。

二、Vue2配置式api(選項式api)與 Vue3組合式api

vue2配置api(選項api)
默認data里面定義的屬性自帶響應式效果(數據代理和數據劫持),vue2的特點:屬性、方法、監聽器都各司其職,分工比較明確;這樣如果代碼量大導致需要滾動代碼看很累,不好維護;

vue3組合式api 【setup語法糖-ref和reactive】
* setup可作為一個函數方法,與vue2中的method、watch等同級定義,一起使用(注意:這屬于在vue2中使用vue3,不建議混合寫法,但是必須知道,萬一后期公司有前人代碼混合寫,我們便于維護修改;)這種使用的不便之處,作為方法里面定義的屬性或方法,需要最后return出去,外面才能使用,那么一旦單頁面業務邏輯稍微復雜,變量和方法要一個一個的返回很不方便,容易遺漏或不必要方法也放上去了;
*直接將setup放到一個新的script標簽上,這稱作Vue3setup的語法糖(語法糖-顧名思義就是將代碼可以簡便),在script標簽里面,仍舊使用和第一種里面一樣的方式定義屬性或方法,而最后不需要我們手動將其返回出去,這個動作語法糖幫我們做了,

   在vue2中,我們說過data里面的數據,由數據代理和數據劫持實現響應式,而vue3中實現響應式,需要我們使用ref或reaction包裹需要的賦值,例如:let a=ref( 'zhong' );  let b=reaction({name:'zzw',age:'18'});     說明:ref可以用于基本數據類型和對象數據類型(若用于對象類型,此時它的底層還是reaction幫忙做的) 、reaction只能用于對象數據類型(并且深層次的對象也能監聽對象的響應-|對象里嵌套多套對象|)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715401.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715401.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715401.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【MATLAB源碼-第153期】基于matlab的OFDM系統插入導頻和訓練符號兩種信道估計方式誤碼率對比仿真。

操作環境: MATLAB 2022a 1、算法描述 OFDM(Orthogonal Frequency Division Multiplexing,正交頻分復用)是一種高效的無線信號傳輸技術,廣泛應用于現代通信系統,如Wi-Fi、LTE和5G。OFDM通過將寬帶信道劃分…

使用docker方式測試部署django項目(客戶催)

需求 1:已有django項目–weidanyewu 2:希望在服務器上測試部署–客戶催 3:沒完善django的啟動 4:使用臨時數據庫進行演示 5:使用python3.10版本鏡像 6:展示端口80 7:后臺執行django程序 8&#…

【C語言】熟悉文件順序讀寫函數

前言 本篇詳細介紹了 文件順序讀寫常用函數,快來看看吧~ 歡迎關注個人主頁:逸狼 創造不易,可以點點贊嗎~ 如有錯誤,歡迎指出~ 目錄 前言 ?編輯 文件順序讀寫函數 fgetc函數 示例 fputc函數 逐個字符寫入 寫入26個字母 文…

手寫模擬器,解放雙手!效果炸裂的生產工具

手寫模擬器是一款基于Handright的仿手寫圖片生成軟件,可以讓你的電腦和手機也能寫出漂亮的手寫字,你只需要輸入你想要寫的內容,選擇你喜歡的字體和背景,就可以生成一張高仿真的手寫圖片,用于各種場合,比如做…

uniapp中canvas的基礎使用

canvas簡介 canvas是uniapp中提供的一個組件,用于生成自定義的圖形界面。通過canvas,我們可以通過JavaScript代碼在頁面上繪制各種圖形和圖像。 使用canvas 在頁面中添加canvas 首先需要在頁面的template中添加一個canvas組件: <template><view><canvas ca…

linux:iostat 用法詳解

文章目錄 描述語法參數例子 描述 iostat 是一個在類Unix操作系統中常用的系統監控工具&#xff0c;尤其是Linux系統中&#xff0c;它主要用于收集和報告中央處理器(CPU)使用情況以及磁盤輸入/輸出(I/O)統計數據。以下是 iostat 命令的基本用法及其參數詳解&#xff1a; 語法 …

代碼隨想錄三刷 day11 | 棧與隊列之 20. 有效的括號 1047. 刪除字符串中的所有相鄰重復項 150. 逆波蘭表達式求值

三刷day11 20. 有效的括號1047. 刪除字符串中的所有相鄰重復項150. 逆波蘭表達式求值 20. 有效的括號 題目鏈接 解題思路&#xff1a; 有三種不匹配的情況&#xff1a; 第一種情況&#xff0c;字符串里左方向的括號多余了 。 第二種情況&#xff0c;括號沒有多余&#xff0c;…

[伴學筆記]01-操作系統概述 [南京大學2024操作系統]

文章目錄 前言jyy:01-操作系統概述 [南京大學2024操作系統]為什么要學操作系統?學習操作系統能得到什么? 什么是操作系統?想要明白什么是操作系統:時間線:1940s1950s-1960s1960-1970s年代. 信息來源: 前言 督促自己,同時分享所得,閱讀完本篇大約需要10分鐘,希望為朋友的技術…

編碼規則轉換

思考&#xff1a; 如何將一個機內碼轉換為區內碼&#xff1f; 只要將機內碼減去 A0A0 就可以啦 如果只讓我們用加法器來解決呢&#xff1f; 注意我們的數據占用了 32 位&#xff0c;如果想用補碼進行減法運算的話&#xff0c;符號位怎么辦&#xff1f;&#xff1f;&#xf…

《探索數據結構之美:如何高效實現哈希表》

摘要&#xff1a;哈希表是一種基于鍵值對的數據結構&#xff0c;它通過哈希函數將鍵映射到表中一個位置&#xff0c;以實現快速的插入、刪除和查找操作。在本期播客中&#xff0c;我們將深入剖析哈希表的數據結構&#xff0c;分享如何用Python語言實現一個哈希表項目。此外&…

【深度學習筆記】計算機視覺——微調

微調 前面的一些章節介紹了如何在只有6萬張圖像的Fashion-MNIST訓練數據集上訓練模型。 我們還描述了學術界當下使用最廣泛的大規模圖像數據集ImageNet&#xff0c;它有超過1000萬的圖像和1000類的物體。 然而&#xff0c;我們平常接觸到的數據集的規模通常在這兩者之間。 假…

【計算機是怎么跑起來的】軟件,體驗一次手工匯編

【計算機是怎么跑起來的】軟件,體驗一次手工匯編 二進制機器語言匯編語言操作碼操作數寄存器內存地址和I/O地址參考書:計算機是怎么跑起來的 第三章外設在路上。。。先整理一下本書涉及的理論知識,反正后面做視頻也要重寫QAQ 程序的作用是驅動硬件工作,所以在編寫程序之前必…

【C++庖丁解牛】類與對象

&#x1f4d9; 作者簡介 &#xff1a;RO-BERRY &#x1f4d7; 學習方向&#xff1a;致力于C、C、數據結構、TCP/IP、數據庫等等一系列知識 &#x1f4d2; 日后方向 : 偏向于CPP開發以及大數據方向&#xff0c;歡迎各位關注&#xff0c;謝謝各位的支持 目錄 1.面向過程和面向對象…

對單例模式的餓漢式、懶漢式的思考

目錄 1 什么是單例模式&#xff1f;1.1 什么是餓漢式&#xff1f;1.2 什么是懶漢式&#xff1f; 2 我對餓漢式的思考3 懶漢式3.1 解決懶漢式的線程安全問題3.1.1 加鎖&#xff1a;synchronized&#xff08;synchronized修飾靜態方法&#xff09;3.1.2 對“3.1.1”性能的改進 1 …

環形鏈表詳解(讓你徹底理解環形鏈表)

文章目錄 一.什么是環形鏈表&#xff1f;二.環形鏈表的例題&#xff08;力扣&#xff09; 三.環形鏈表的延伸問題 補充 一.什么是環形鏈表&#xff1f; 環形鏈表是一種特殊類型的鏈表數據結構&#xff0c;其最后一個節點的"下一個"指針指向鏈表中的某個節點&#xff…

Python 教學平臺,支持“多班教學”的課程授課方式|ModelWhale 版本更新

龍行龘龘、前程朤朤&#xff0c;ModelWhale 新一輪的版本更新&#xff0c;期待為大家帶來更優質的使用體驗。 本次更新中&#xff0c;ModelWhale 主要進行了以下功能迭代&#xff1a; 新增 課程&#xff08;包括課件、作業、算力&#xff09;按班級管理&#xff08;團隊版? …

springcloud的搭建和封裝,已進行開源,相互學習代碼知識。

springcloud架構的統一父工程&#xff0c;&#xff08;管理子模塊&#xff0c;管理依賴插件&#xff0c;依賴版本等&#xff09; abillty:能力服務塊&#xff1a;存放一些非業務相關的微服務&#xff0c;比如網關&#xff0c;身份認證等 exce: 網關中的一些異常信息處理 gatewa…

基于Springboot的人事管理系統 (有報告)。Javaee項目,springboot項目。

演示視頻&#xff1a; 基于Springboot的人事管理系統 &#xff08;有報告&#xff09;。Javaee項目&#xff0c;springboot項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系結構&am…

【Git】merge時報錯:refusing to merge unrelated histories

文章目錄 一、問題二、解決辦法1、將feature分支的東西追加到master分支中2、將feature里的東西直接覆蓋到master分支中 一、問題 今天將feature分支合并到master時報錯&#xff1a;refusing to merge unrelated histories&#xff08;拒絕合并無關歷史&#xff09; 報錯原因&…

一篇文章速通static關鍵字(JAVA)

目錄 1.原理——內存機制 1.1 修飾對象 1.2 lifecycle生命周期 2. 靜態屬性&#xff08;類屬性&#xff09;和實例屬性&#xff08;對象屬性&#xff09; 2.1 定義方式 2.2 調用方法 3. 靜態方法和屬性 3.1 在同一個類中 3.2 在不同類中 4.總結&#xff08;關鍵&#x…