透過把這樣子的層級結構轉換為對應的「物件」而成的關係模型。
將HTML文本的複雜層級關係,轉換成以物件結構的方式來表現 ,讓程式語言得以與之溝通。
Document Object Model(文件物件模型)
每個瀏覽器都有不同的前綴詞:
JavaScript 是一種單線程的程式語言,簡單的說就是一次只能做一件事:
Event Loop 幾乎無時無刻、每一毫秒都在執行的程式
Stack 中文翻譯為堆疊,是資料結構的一種,它就像是疊盤子一樣,特性為後進先出
Queue 中文翻譯為佇列,是資料結構的一種,它就像排隊一樣,特性為先進先出
Web API 是瀏覽器提供的方法,它並不是 JavaScript 引擎的一部分,且運作於瀏覽器端,也就是說他們可以同時運行
指的就是這一整個循環,當 Call Stack 被清空則會檢視 Callback Queue,並將其放入 Call Stack,就這樣不斷的循環,達成一個不阻塞的機制
MVVM 是Mode-View-ViewModel的簡稱
透過document.createDocumentFragment()方法來建議Dom,隨著vue監聽數據出現改變,透過Object.defineProperty()來實現對數據攔截
Vue 雙向綁定在 3.0 之前都是使用 Object.defineProperty
因此在 Vue3.0 中,用 ES6 的 Proxy 取代了Object.defineProperty
router.beforeEatch 註冊在全域的router檢測,to代表前往的路由,from來自哪裡的路由,next 選擇調用的方法,常是選擇前往某頁面或是選擇中斷
router.beforeEnter:參與同router.beforeEatch相同,但是是使用在單一Router
下面幾種則較少使用
router.beforeResolve
router.berforeRouteEnter
router.beforeROuteUpdate
router.BeforeRouteleave
query:所傳送的參數會顯示在 URL 裏,配置的是path,不需設置傳參數,刷新頁面不會消失
parms:可以不顯示在 URL 裏,配置的是name,刷新會失去parms資料,使用動態傳參,動態傳參會留在瀏覽器留下url地址,且刷新不會消失
keep-alive:的作用是緩存一個元件的資料狀態,即使它被切換掉,不再呈現在畫面上時,它的資料狀態依然會把存起來,並不會像一般元件那樣被銷毀
該元件在只會跑一次生命週期,之後只會跑 activated 和 deactivated 這兩個生命週期,代替 mounted 和unmounted。
你會發現,有些情況即使使用 computed、watch 和 methods 都能實現同一效果。但是,computed 的效能通常都會比較好,因為:
Pinia 基本架構(Store、State、Actions)
Actions 與 Vuex Mutations 操作相同,並支援 async function,這是改變 State 的唯一方法。
可以在 actions 中使用 async/await 取得非同步資料後更改 State
可以直接從 store 取得任何的 State
Pinia 對 TS 有著更好的支援,不再需要多餘的 types 來包裝
Vue3(Composition API)+Pinia
Vue2(Option API)+ Pinia
Vue3(Option API)+ Vuex4
1 | <script setup> |
1.通過slot插槽向組件傳遞內容
2.大型企業經常看到
//父組件
1 | <!-- 父組件--> |
1 | //父組件 |
建立 OAuth
Console
Cloud Google
取得 Refresh token 與 Access token
接下來請開啟這個網址OAuth 2.0 Playground,然後點一下右上齒輪,並將「Use your own OAuth credentials」打勾輸入剛剛的 Client ID 以及 Client Secret
Step2 取得Token
應用程式建構器 prerender 選項可以是布林值或對象,以進行更精細的配置。當選項為 時false,不進行預渲染。當為 時true,所有選項都使用預設值。當它是一個物件時,每個選項都可以單獨配置。
app.config.ts
1 | "options": { |
1 | import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; |
1 | /api |
1 | ng serve |