【博學谷學習記錄】超強總結,用心分享 | vue面試1

来源:https://www.cnblogs.com/neilniu/archive/2023/02/13/17115090.html
-Advertisement-
Play Games

vuex的原理是什麼? 它採用 集中式存儲管理 應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。 每一個 Vuex 應用的核心就是 store,裡面又包括: (1)state(數據):用來存放數據源,就是公共狀態; (2)getters(數據加工):有的時候需要對數據源進行加 ...


vuex的原理是什麼?

它採用 集中式存儲管理 應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。

每一個 Vuex 應用的核心就是 store,裡面又包括:
(1)state(數據):用來存放數據源,就是公共狀態;
(2)getters(數據加工):有的時候需要對數據源進行加工,返回需要的數據;
(3)actions(事件):要執行的操作,可以進行同步或者非同步事件
(4)mutations(執行):操作結束之後,actions通過commit更新state數據源(同步操作)
(5)modules:使用單一狀態樹,致使應用的全部狀態集中到一個很大的對象,所以把每個模塊的局部狀態分裝使每一個模塊擁有本身的 state、mutation、action、getters、甚至是嵌套子模塊;

vue組件通信方式

props 父子組件通信
通過emite觸發自定義事件


兄弟組件通信
EventBus 

$ref通過獲取節點通信

依賴插入provide/reject

多層嵌套:
$attrs, $listener

Vuex狀態管理器

localStorage/SessionStorage持久化存儲

localstorage和sessionstorage的區別

  • 存儲時間:localStorage的生命周期是永久的,sessionStorage的生命周期是在僅在當前會話下有效。關閉就沒有了,只在當前標簽可用,當前標簽的iframe中且同源可以共用
  • 存儲大小:5MB
  • 存儲位置:都保存在客戶端
  • 存儲類型:字元串類型
  • 獲取方式:localStorage:window.localStorage;;sessionStorage:window.sessionStorage
  • 應用場景:localStoragese:常用於長期登錄(+判斷用戶是否已登錄),適合長期保存在本地的數據。sessionStorage:敏感賬號一次性登錄

wather和compents的區別

  • 共同點:都是用於監聽數據變化的屬性

  • 不同點:

    • computed 如果函數所依賴的屬性沒有發生變化,從緩存中讀取, 必須有return返回
    • watch中的函數是不需要調用的,只會監聽數據的值是否發生改變,而不會去監聽數據的地址是否發生改變,要深度監聽需要配合deep:true屬性使用, immediate:true 頁面首次載入的時候做一次監聽
  • 應用場景:computed 應用於數據計算,watch用於數據監聽

錯誤的code碼

  • 200 成功處理請求
  • 300 重定向,完成請求,需要進一步操作
  • 400 請求錯誤,語法錯誤或者許可權錯誤
  • 500 伺服器錯誤

vue的生命周期函數

Vue2

`beforeCreate`階段data、methods、computed以及watch上的數據和方法都不能被訪問。

`created`在實例創建完成後發生,當前階段已經完成了數據觀測,也就是可以使用數據,更改數據,在這裡更改數據不會觸發updated函數。可以做一些初始數據的獲取,在當前階段無法與Dom進行交互,如果非要想,可以通過vm.$nextTick來訪問Dom。

`beforeMount`發生在掛載之前,在這之前template模板已導入渲染函數編譯。而當前階段虛擬Dom已經創建完成,即將開始渲染。在此時也可以對數據進行更改,不會觸發updated。

`mounted`在掛載完成後發生,在當前階段,真實的Dom掛載完畢,數據完成雙向綁定,可以訪問到Dom節點,使用$refs屬性對Dom進行操作。

`beforeUpdate`發生在更新之前,也就是響應式數據發生更新,虛擬dom重新渲染之前被觸發,你可以在當前階段進行更改數據,不會造成重渲染。

`updated`發生在更新完成之後,當前階段組件Dom已完成更新。要註意的是避免在此期間更改數據,因為這可能會導致無限迴圈的更新。

`beforeDestroy`發生在實例銷毀之前,在當前階段實例完全可以被使用,我們可以在這時進行善後收尾工作,比如清除計時器。

`destroyed`發生在實例銷毀之後,這個時候只剩下了dom空殼。組件已被拆解,數據綁定被卸除,監聽被移出,子實例也統統被銷毀。

vu3

`beforeCreate`和`create`被`setup`取代
`beforeDestroy`和`destroyed`被`beforeUnmount`和`unmounted`取代
`errorCaptured`: 在捕獲了後代組件傳遞的錯誤時調用。
`renderTracked`:(僅開發時用)在一個響應式依賴被組件的渲染作用追蹤後調用。
`renderTriggered`: (僅開發時用) 在一個響應式依賴被組件觸發了重新渲染之後調用。
`activated`: 若組件實例是`<KeepAlive>` 緩存樹的一部分,當組件被插入到 DOM 中時調用。
`deactivated`: 若組件實例是`<KeepAlive>` 緩存樹的一部分,當組件從 DOM 中被移除時調用。
`serverPrefetch`: 當組件實例在伺服器上被渲染之前要完成的非同步函數。

常用到的有哪些組件封裝

1- 正常的封裝組件,導入組件
2- 通過slot 封裝組件,
3- 全局註冊組件Vue.component()

混入模式

flex佈局

# nowrap不換行  wrap換行  wrap-reverse:倒敘換行
flex-wrap: nowrap 

ts

unknow和any的區別

any意味著ts不會對它進行任何類型校驗
在`unknown`沒有被斷言或細化到一個確切類型之前,是不允許在其上進行任何操作的。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近遇到需求需要把控制台程式做成 windows服務 的形式運行。改成 windows服務 後,程式無法訪問共用網路文件,訪問提示“Access to the path '網路路徑' is denied.“,拒絕訪問,原因是當前服務的用戶憑證無許可權訪問,於是需要修改當前服務的用戶憑證,改為可訪問共用 ...
  • 簡單說下什麼是t4模版T4,即4個T開頭的英文字母組合:Text Template Transformation Toolkit。 T4(Text Template Transformation Toolkit)是微軟官方在VisualStudio 2008中開始使用的代碼生成引擎。在 Visual ...
  • 痞子衡嵌入式半月刊: 第 71 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
  • 日誌 錯誤日誌 錯誤日誌是mysql中最重要的日誌之一,它記錄了當mysqld啟動和停止時,以及伺服器在運行過程中發生任何嚴重錯誤時的相關信息,當資料庫出現任何故障導致無法正常使用時,建議首先查看此日誌。 該日誌是預設開啟的,預設存放目錄:/var/log/,預設的日誌文件名為mysql.log。查 ...
  • 摘要: 本文內容主要來源於互聯網上主流文章,只是按照個人理解稍作整合,後面附有參考鏈接。 本文內容主要來源於互聯網上主流文章,只是按照個人理解稍作整合,後面附有參考鏈接。 一、摘要 本文以MySQL資料庫為研究對象,討論與資料庫索引相關的一些話題。特別需要說明的是,MySQL支持諸多存儲引擎,而各種 ...
  • 出現的提示信息 This backend version is not supported to design database diagrams or tables. (MS Visual Database Tools 問題發生的原因 SSMS的版本低於SQL Server的版本 ———————— ...
  • DuckDB 是近年來頗受關註的OLAP資料庫,號稱是OLAP領域的SQLite,以精巧簡單,性能優異而著稱。筆者前段時間在調研Doris的Pipeline的運算元並行方案,而DuckDB基於論文《Morsel-Driven Parallelism: A NUMA-Aware Query Evalua ...
  • 重新總結組件的定義 這是官方對組件的定義:組件允許我們將 UI 劃分為獨立的、可重用的部分,並且可以對每個部分進行單獨的思考。在實際應用中,組件常常被組織成層層嵌套的樹狀結構。 對於 Vue 開發經驗不多的我來說,起初我只是簡單的把一個組件當作一個頁面,也並沒有把頁面中太多的可以獨立劃分的地方寫成組 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...