Vue和React面試知識點

2022-03-17 02:21:05 字數 3795 閱讀 9889

1.資料型別set集合:set常用於去重操作

2.資料型別map:map可以避免鍵值必須為字串的限制,其鍵值可以為物件、陣列等

3.symbol型別:在用相同的字串對物件屬性名或方法進行命名時會發生命名衝突,而使用symbol產生的名字是不同的

1)let宣告變數和const宣告常量,兩個都有塊級作用域

2)模板字串

模板字串是增強版的字串,用反引號(`)標識,可以當作普通字串使用,也可以用來定義多行字串

3)解構賦值

es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值

4)for of迴圈

for...of迴圈可以遍歷陣列、set和map結構、某些類似陣列的物件、物件,以及字串

5)import、export匯入匯出

es6標準中,js原生支援模組(module)。將js**分割成不同功能的小塊進行模組化,將不同功能的**分別寫在不同檔案中,各模組只需匯出公共介面部分,然後通過模組的匯入的方式可以在其他地方使

6)... 展開運算子

可以將陣列或物件裡面的值展開;還可以將多個值收集為乙個變數

7)class 類的繼承

es6中不再像es5一樣使用原型鏈實現繼承,而是引入class這個概念

8)async、await

使用 async/await, 搭配promise,可以通過編寫形似同步的**來處理非同步流程, 提高**的簡潔性和可讀性

async 用於申明乙個 function 是非同步的,而 await 用於等待乙個非同步方法執行完成

9)promise

promise是非同步程式設計的一種解決方案,比傳統的解決方案(**函式和事件)更合理、強大

10)proxy**

使用**(proxy)監聽物件的操作,然後可以做一些相應事情

var宣告變數可以重複宣告,而let不可以重複宣告

var是不受限於塊級的,而let是受限於塊級

var會與window相對映(會掛乙個屬性),而let不與window相對映

var可以在宣告的上面訪問變數,而let有暫存死區,在宣告的上面訪問變數會報錯

const宣告之後必須賦值,否則會報錯

const定義不可變的量,改變了就會報錯

const和let一樣不會與window相對映、支援塊級作用域、在宣告的上面訪問變數會報錯

foreach更多的用來遍歷陣列

for in 一般常用來遍歷物件或json

for of陣列物件都可以遍歷,遍歷物件需要通過和object.keys()

for in迴圈出的是key,for of迴圈出的是value

2xx 成功

3xx 重定向

4xx 客戶端錯誤

5xx 伺服器錯誤

html表單提交method就是get、post請求兩種。,但是從http動作的角度來看,除了get、post,還有delete、put等

每一次頁面跳轉的時候,後台伺服器都會給返回乙個新的html文件,這種型別的**也就是多頁**,也叫做多頁應用。

1. 陣列轉字串:.join()將陣列中所有元素放到乙個字串中,並用指定的分隔符進行分割

2. 字串轉陣列:.split()將字串以指定的分隔符分割成陣列

3.字串轉json物件:json.parse(jsonstr);

4.json物件轉json字串:json.stringify(jsonobj);

第一次進入頁面的時候會請求乙個html檔案,重新整理清除一下。切換到其他元件,此時路徑也相應變化,但是並沒有新的html檔案請求,頁面內容也變化了。

原理是:js會感知到url的變化,通過這一點,可以用js動態的將當前頁面的內容清除掉,然後將下乙個頁面的內容掛載到當前頁面上,這個時候的路由不是後端來做了,而是前端來做,判斷頁面到底是顯示哪個元件,清除不需要的,顯示需要的元件。這種過程就是單頁應用,每次跳轉的時候不需要再請求html檔案了。

mvvm 是 model-view-viewmodel 的縮寫。

model代表資料模型,也可以在model中定義資料修改和操作的業務邏輯。

view代表ui 元件,它負責將資料模型轉化成ui 展現出來。

viewmodel監聽模型資料的改變和控制檢視行為、處理使用者互動,簡單理解就是乙個同步view 和 model的物件,連線model和view。

在mvvm架構下,view 和 model 之間並沒有直接的聯絡,而是通過viewmodel進行互動,model 和 viewmodel 之間的互動是雙向的, 因此view 資料的變化會同步到model中,而model 資料的變化也會立即反應到view 上。

viewmodel通過雙向資料繫結把 view 層和 model 層連線了起來,而view 和 model 之間的同步工作完全是自動的,無需人為干涉,因此開發者只需關注業務邏輯,不需要手動操作dom, 不需要關注資料狀態的同步問題,複雜的資料狀態維護完全由 mvvm 來統一管理。

vue:

react:

執行中狀態:

銷毀階段:

vue父子之間通訊

react父子之間通訊

vuex:只用來讀取的狀態集中放在store中; 改變狀態的方式是提交mutations,這是個同步的事物; 非同步邏輯應該封裝在action中

redux:管理狀態,使用者通過介面元件 觸發actioncreator,攜帶store中的舊state與action 流向reducer,reducer返回新的state,這是同步,reducer裡面只能放純函式

處理非同步的需要中介軟體:redux-thunk或者redux-saga

redux-thunk

缺點:edux-saga:

優點:缺點:學習成本高。

vue-router:實現單頁面前端路由,提供了兩種方式:hash模式和history模式。

//

router.js

vue.use(router);

//

router.js

export default

newrouter(,,]

})

//

main.js

import router from "./config/router";

newvue( from 'react-router-dom'

相同點:

react採用特殊的jsx語法,vue.js在元件開發中也推崇編寫.vue特殊檔案格式,對檔案內容都有一些約定,兩者都需要編譯後使用;中心思想相同:一切都是元件,元件例項之間可以巢狀;都提供合理的鉤子函式,可以讓開發者定製化地去處理需求;都不內建列數ajax,route等功能到核心包,而是以外掛程式的方式載入;在元件開發中都支援mixins的特性。

不同點:

react採用的virtual dom會對渲染出來的結果做髒檢查;vue.js在模板中提供了指令,過濾器等,可以非常方便,快捷地操作virtual dom。

vue:

react:

vue面試知識點總結

mvvm 是 model view viewmodel 的縮寫。model代表資料模型,也可以在model中定義資料修改和操作的業務邏輯。view代表ui 元件,它負責將資料模型轉化成ui 展現出來。viewmodel監聽模型資料的改變和控制檢視行為 處理使用者互動,簡單理解就是乙個同步view 和...

React知識點彙總

核心 元件系統,all in js,自動更新dom,三個階段,十乙個鉤子函式,更新狀態,react中的事件,可控和不可控元件 不需要特殊的開發環境,使用常見ide並安裝相應的外掛程式即可,react相容ie8及以上,其他主流的瀏覽器也相容,相容性較好。簡單來說就是all in js,將html,cs...

React 相關知識點

1 元件中get的使用 作為類的getter es6知識 class類也有自己的getter和setter,寫法如下 class component name的getter getname name的setter setname value react元件中的get的使用如下 renderfulln...