中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

當前位置: 首頁 / 技術干貨 / 正文
好程序員web前端教程分享Vue.js面試題

2020-08-25

web前端培訓 web前端教程 好程序員

  好程序員web前端教程分享Vue.js面試題,1. 渲染項目列表時,“key” 屬性的作用和重要性是什么?

  渲染項目列表時,key 屬性允許 Vue 跟蹤每個 Vnodekey 值必須是唯一的。

  如果沒有使用 key 屬性,并且列表的內容發生了改變(例如對列表進行排序),則虛擬 DOM 寧愿使用更新的數據來修補節點,來反映更改,而不是上下移動元素。這是默認模式,非常有效。

  當提供唯一的鍵值 IS 時,將根據對鍵的更改對元素進行重新排序(并且不使用新數據對它們進行修補),如果刪除了 key(例如,刪除列表中的項目時),則對應的元素節點也被銷毀或刪除。

  請注意下圖:

QQ截圖20200825151651

  這里有一個父組件渲染一個子組件列表。我們看到三個列表項被渲染為三個子組件節點。這些子組件都包含一個 span 標記和一個輸入框,可能還包含一個本地狀態對象(可選)。現在讓我們檢查兩種情況:

  當不使用 key 屬性時:例如如果列表已重新排序,則 Vue 會使用重新排序的數據簡單地修補已經存在的三個節點,而不用移動這些節點。只要用戶沒有輸入或更改這些子組件中一個或多個子組件的本地狀態,此方法就可以正常工作。因此假設用戶輸入了組件編號為 3的輸入框,重新排序列表后,組件編號為 3 span 標簽內容將唄更改,但是輸入框將與用戶鍵入的內容擊破狀態數據一起保留在這里。這是因為 Vue 無法識別組件編號 3,它只是重新修補它所看到的更新數據,即 span 標簽的內容。

  當在子組件上使用 key 屬性時,Vue 會知道該組件的身份,并且在對列表進行重新排序時,將移動節點而不是對其進行修補。這能夠確保手動編輯的輸入框以及整個組件移動到新位置。

  在有條件地渲染組件或元素時,還可以用 key 屬性來向 Vue 發出有關元素唯一性的信號,并確保元素不會被新數據重新修補。

  2.你將怎樣在模板中渲染原始 HTML

  在模板中輸出內容的典型方法是使用 mustache 語法標簽從方法、屬性或數據變量輸出數據。但是 mustache 標記會渲染文本。如果你嘗試使用 mustache 標記來渲染 HTML,它將以文本字符串的形式去渲染,并且不會被解析。要將內容渲染和解析為 html,我們可以使用 v-html 指令,如下所示。

 

模板

 

<div id="app" v-html=title></div>

復制代碼

App 應用

 

new Vue({

 el: '#app',

 data: {

 title: '<h1 style="color: green;">Vue.js</h1>'

 }

});

輸出

 

Vue.js

 

如上面的例子所示,v-html 指令解析所有HTML,結果上面的語句將按需渲染。開發人員必須在了解 v-html 的前提下使用。如果不恰當地使用了 v-html,可能會使網站遭受注入攻擊,很有可能會從外部源注入并執行惡意代碼。

 

3. 什么是vue-loader

 

Vue-loader Webpack 的加載器模塊,它使我們可以用 .vue 文件格式編寫單文件組件。單文件組件文件有三個部分,即模板、腳本和樣式。 vue-loader 模塊允許 webpack 使用單獨的加載器模塊(例如 SASS SCSS 加載器)提取和處理每個部分。該設置使我們可以使用 .vue 文件無縫編寫程序。

 

vue-loader 模塊還允許把靜態資源視為模塊依賴性,并允許使用 webpack 加載器進行處理。而且還允許在開發過程中進行熱重裝。

 

4. 什么是 mixin

 

Mixins 使我們能夠為 Vue 組件編寫可插拔和可重用的功能。如果你希望在多個組件之間重用一組組件選項,例如生命周期 hook、方法等,則可以將其編寫為 mixin,并在組件中簡單地引用它。然后將 mixin 的內容合并到組件中。如果你要在 mixin 中定義生命周期 hook,那么它在執行時將優先于組件自己的 hook

 

5. 在開發過程中,如果你的 Vue 程序和后端 API 服務器未在同一主機上運行,該如何代理 API 請求。假設使用 Vue-CLI 3 進行設置?

 

Lets say we have a Node.js backend server running on localhost:4040. To ensure it is proxyed in and accessible from the components, we can configure the vue.config.js file and include a devServer section as shown below:

 

假設我們有一個運行在 localhost:4040 上的 Node.js 后端服務器。為了確保代理并可以從組件中訪問它,可以配置 vue.config.js 文件并包含 devServer 部分,如下所示:

 

vue.config.js 文件中:

 

module.exports: {

 devServer: {

 proxy: {

 '/api': {

 target: http://localhost:4040/api,

 changeOrigin: true

 }

 }

 }

}

6. prop 如何指定其類型要求?

 

通過實現 prop 驗證選項,可以為單個 prop 指定類型要求。這對生產沒有影響,但是會在開發階段發出警告,從而幫助開發人員識別傳入數據和 prop 的特定類型要求的潛在問題。

 

配置三個 prop 的例子:

 

props: {

 accountNumber: {

 type: Number,

 required: true

 },

 name: {

 type: String,

 required: true

 },

 favoriteColors: Array

}

7. 什么是虛擬 DOM

 

文檔對象模型或 DOM 定義了一個接口,該接口允許 JavaScript 之類的語言訪問和操作 HTML 文檔。元素由樹中的節點表示,并且接口允許我們操縱它們。但是此接口需要付出代價,大量非常頻繁的 DOM 操作會使頁面速度變慢。

 

Vue 通過在內存中實現文檔結構的虛擬表示來解決此問題,其中虛擬節點(VNode)表示 DOM 樹中的節點。當需要操縱時,可以在虛擬 DOM的 內存中執行計算和操作,而不是在真實 DOM 上進行操縱。這自然會更快,并且允許虛擬 DOM 算法計算出最優化的方式來更新實際 DOM 結構。

 

一旦計算出,就將其應用于實際的 DOM 樹,這就提高了性能,這就是為什么基于虛擬 DOM 的框架(例如 Vue React)如此突出的原因。

 

8. 什么是 Vue 插件?

 

Vue 插件允許開發人員構建全局級別的功能并將其添加到 Vue。用于向程序添加可以全局訪問的方法和屬性、資源,選項,mixin 以及其他自定義 APIVueFire Vue 插件的一個例子,該插件添加了 Firebase 特定的方法并將其綁定到整個程序。之后 firebase 函數可在程序結構中的任何位置的 this 上下文中使用。

 

9. 什么是渲染函數?舉個例子。

 

Vue 允許我們以多種方式構建模板,其中最常見的方式是只把 HTML 與特殊指令和 mustache 標簽一起用于響應功能。但是你也可以通過 JavaScript 使用特殊的函數類(稱為渲染函數)來構建模板。這些函數與編譯器非常接近,這意味著它們比其他模板類型更高效、快捷。由于你使用 JavaScript 編寫渲染函數,因此可以在需要的地方自由使用該語言直接添加自定義函數。

 

對于標準 HTML 模板的高級方案非常有用。

 

這里是用 HTML 作為模板的 Vue 程序

 

new Vue({

 el: '#app',

 data: {

 fruits: ['Apples', 'Oranges', 'Kiwi']

 },

 template:

 `<div>

 <h1>Fruit Basket</h1>

 <ol>

 <li v-for="fruit in fruits">{{ fruit }}</li>

 </ol>

 </div>`

});

這里是用渲染函數開發的同一個程序:

 

new Vue({

 el: '#app',

 data: {

 fruits: ['Apples', 'Oranges', 'Kiwi']

 },

 render: function(createElement) {

 return createElement('div', [

 createElement('h1', 'Fruit Basket'),

 createElement('ol', this.fruits.map(function(fruit) {

 return createElement('li', fruit);

 }))

 ]);

 }

});

輸出:

 

Fruit Basket

 

Apples

Oranges

Kiwi

在上面的例子中,我們用了一個函數,它返回一系列 createElement() 調用,每個調用負責生成一個元素。盡管 v-for 指令在基于 HTML 的模板中起作用,但是當使用渲染函數時,可以簡單地用標準 .map() 函數遍歷 fruits 數據數組。

 

10. 哪個生命周期 hook 最適合從 API 調用中獲取數據?

 

盡管這取決于組件的用途及,但是創建的生命周期 hook 內通常非常適合放置 API 調用。這時可以使用組件的數據和響應性功能,但是該組件尚未渲染。

 

11. 什么時候調用 “updated” 生命周期 hook

 

在更新響應性數據并重新渲染虛擬 DOM 之后,將調用更新的 hook。它可以用于執行與 DOM 相關的操作,但是(默認情況下)不能保證子組件會被渲染,盡管也可以通過在更新函數中使用 this.$nextTick 來確保。

 

12. Vue 實例中編寫生命周期 hook 或其他 option/propertie 時,為什么不使用箭頭函數?

 

箭頭函數自己沒有定義 this 上下文,而是綁定到其父函數的上下文中。當你在 Vue 程序中使用箭頭函數(=>)時,this 關鍵字病不會綁定到 Vue 實例,因此會引發錯誤。所以強烈建議改用標準函數聲明。

 

13. 什么時候使用keep-alive元素?

 

當由于數據屬性或其他某種響應狀態而動態切換組件時,每次將它們切換到渲染狀態時,都會被重新渲染。盡管你可能需要這種行為,但在某些情況下重新渲染可能是不合適的。例如在創建時從 API 調用中引入數據的組件。你可能不希望每次動態切換這個組件進行渲染時都調用此 API。這時你可以將組件包含在 keep-alive 元素中。keep-alive 元素緩存該組件并從那里獲取它,而不是每次都重新渲染它。

 

14. 在大型 Vue 程序中管理狀態的推薦方法是什么?為什么?

 

當程序在功能和代碼方面不斷增長時,狀態管理會變得困難,并且使用無窮無盡的下游網絡 prop 和上游事件當然不是明智的決定。在這種情況下,有必要將狀態管理轉移到中央管理系統。 Vue 生態系統中提供了 Vuex,它是官方的狀態管理庫,也是推薦用于集中存儲狀態的模式。

 

Vuex 允許維護中央狀態。組件將 Vuex 用作響應性數據存儲,并在狀態更新時進行更新。多個或者不相關的組件可以依賴于相同的中央存儲。

 

在這種情況下,Vue 充當純 View 層。要修改狀態,視圖層(例如按鈕或交互式組件)需要發出 Vuex Action,然后執行所需的任務。為了更新或修改狀態,Vuex 提供了 Mutations

 

這個工作流程的目的是留下可用的操作痕跡。

 

15. 什么是異步組件?

 

當大型程序使用大量組件時,從服務器上同時加載所有組件可能是沒有意義的。在這種情況下,Vue 允許我們在需要時定義從服務器異步加載的組件。在聲明或注冊組件時,Vue 接受提供 Promise 的工廠函數。然后可以在調用該組件時對其進行“解析”。

 

通過僅加載基本組件并把異步組件的加載推遲到未來的調用時間,可以節省帶寬和程序加載時間。

 

這是一個異步組件的簡單示例。

 

new Vue({

 components: {

 ‘tweet-box: () => import(./components/async/TweetBox)

 }

});

當以這種方式使用時,Webpack 的代碼拆分將用于提供此功能。

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

            国产精品久久毛片av大全日韩| 国产精品成人网| 亚洲欧美色一区| 久久精品国产**网站演员| 色综合婷婷久久| 久久久久久久综合色一本| 丝袜美腿成人在线| 99久精品国产| 国产日本一区二区| 日本伊人色综合网| 欧美日韩第一区日日骚| 亚洲黄色小视频| av不卡在线播放| 国产精品嫩草99a| 国产精品综合视频| 精品国产伦一区二区三区免费| 日韩极品在线观看| 91麻豆文化传媒在线观看| 一区精品在线播放| 国产精品一区二区视频| 久久综合九色综合欧美98| 水蜜桃久久夜色精品一区的特点| 91免费看`日韩一区二区| 国产精品麻豆视频| 不卡在线视频中文字幕| 中文字幕免费在线观看视频一区| 黑人巨大精品欧美黑白配亚洲| 91精品国产免费久久综合| 国产真实乱偷精品视频免| 欧美一卡在线观看| 日本午夜精品一区二区三区电影| 日韩视频免费观看高清完整版在线观看 | 国产精品萝li| av中文字幕不卡| 亚洲免费毛片网站| 在线欧美日韩精品| 国产欧美日韩视频一区二区| 成人精品亚洲人成在线| 18成人在线观看| 欧美午夜在线一二页| 爽爽淫人综合网网站| 91精品国产入口在线| 国产一区二区三区免费观看| 日本一区二区三区国色天香| 成人性生交大片| 一区二区三区电影在线播| 欧美精品第1页| 国产一区二区三区免费看| 日韩美女视频19| 欧美挠脚心视频网站| 黄一区二区三区| **欧美大码日韩| 欧美日韩久久一区| 国产麻豆视频精品| 亚洲男人的天堂在线aⅴ视频| 欧美一a一片一级一片| 免费成人在线网站| 国产蜜臀97一区二区三区| 99re6这里只有精品视频在线观看| 夜夜揉揉日日人人青青一国产精品| 欧美福利电影网| 成人网男人的天堂| 免费视频一区二区| 亚洲欧美另类小说| 精品国产91乱码一区二区三区 | 久久久久久久久久久久电影 | 欧美日韩国产精品自在自线| 久久99精品国产91久久来源| 国产精品久久久久影院亚瑟| 欧美性色aⅴ视频一区日韩精品| 九九精品一区二区| 亚洲日本在线看| 国产欧美日韩三区| 欧美日韩色一区| 成人动漫精品一区二区| 日本欧美肥老太交大片| 亚洲乱码精品一二三四区日韩在线| 欧美成人一区二区三区片免费| 日本高清免费不卡视频| 国产成人av一区| 美国十次综合导航| 亚洲va中文字幕| 亚洲免费观看在线视频| 国产亚洲精品免费| 欧美一区二区三区视频免费播放| 93久久精品日日躁夜夜躁欧美| 国产乱妇无码大片在线观看| 日韩黄色片在线观看| 亚洲国产成人av网| 亚洲毛片av在线| 亚洲视频一区二区在线| 国产欧美综合在线观看第十页| 欧美大尺度电影在线| 欧美日韩国产不卡| 色国产综合视频| 91丨九色丨尤物| 99在线热播精品免费| 夫妻av一区二区| 国产露脸91国语对白| 狠狠狠色丁香婷婷综合激情 | 亚洲色图都市小说| 国产精品乱人伦中文| 久久久久99精品一区| 国产女同互慰高潮91漫画| 久久综合资源网| 精品国产欧美一区二区| 日韩欧美中文字幕精品| 日韩精品一区二区在线观看| 欧美mv和日韩mv的网站| 日韩欧美黄色影院| 精品少妇一区二区三区在线播放| 精品国产乱码久久久久久图片 | 欧美一区二区私人影院日本| 欧美一区中文字幕| 欧美一区二区黄| 久久新电视剧免费观看| 国产视频一区二区三区在线观看| 国产日韩精品一区二区三区在线| 久久久精品影视| 欧美激情一区二区三区在线| 成人欧美一区二区三区黑人麻豆 | 国产视频亚洲色图| 中文字幕第一区| 亚洲精品视频在线看| 亚洲国产成人va在线观看天堂| 青青草一区二区三区| 国产精品综合视频| 色哟哟亚洲精品| 777亚洲妇女| 久久精品视频一区二区| 亚洲欧美日韩国产综合| 依依成人精品视频| 青青草国产精品亚洲专区无| 国产精品乡下勾搭老头1| 91免费视频网| 日韩欧美综合在线| 亚洲品质自拍视频网站| 日韩主播视频在线| 成人夜色视频网站在线观看| 欧美性xxxxx极品少妇| 精品乱人伦一区二区三区| 中文字幕一区二区视频| 男人的天堂亚洲一区| av高清不卡在线| 欧美一区二区三区四区五区| 中文字幕精品在线不卡| 午夜精品福利视频网站| 国产精品1区2区| 欧美日韩在线观看一区二区| 久久久久久久久久久黄色| 亚洲妇女屁股眼交7| 国产91丝袜在线观看| 欧美日韩精品福利| 久久免费偷拍视频| 亚洲综合在线视频| 成人动漫中文字幕| 欧美精品一区二区在线观看| 亚洲一二三区不卡| 波多野洁衣一区| 精品国产网站在线观看| 一区二区三区国产精华| 成人国产精品视频| 久久精品在线观看| 精品一区二区精品| 91麻豆精品91久久久久同性| 洋洋成人永久网站入口| 成人91在线观看| 欧美激情在线一区二区三区| 美女在线视频一区| 欧美顶级少妇做爰| 亚洲一区在线视频| 日本韩国欧美国产| 一区二区三区在线不卡| 99精品偷自拍| 亚洲天天做日日做天天谢日日欢 | 日韩精品一二三| 日韩美女视频一区二区 | 欧美日韩免费不卡视频一区二区三区| 国产成人高清视频| 国产成人久久精品77777最新版本| 麻豆成人av在线| 成人免费毛片app| 国内精品免费**视频| 波多野结衣中文字幕一区二区三区 | 日韩一二在线观看| 久久久亚洲综合| 国产精品不卡一区| 亚洲一区二区三区四区五区黄| 欧美aaaaa成人免费观看视频| 激情成人综合网| 欧美色男人天堂| 国产精品毛片久久久久久| 日本不卡一区二区| 国产乱码精品一区二区三区av| 欧美日韩成人在线一区| 精品欧美久久久| 亚洲第一av色| 91网站最新地址| 国产丝袜在线精品| 久久超碰97中文字幕|