成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

頻繁切換v-show,不頻繁使用v-if?面試的時候可別再這么說了!

開發 前端
Vue 官方中對 v-if 和 v-show 的使用場景區分是:當需要頻繁顯示和隱藏的時候,那么需要使用 v-show 否則需要使用 v-if。

Hello,大家好,我是 Sunday。

很多同學應該都在面試中遇到過這樣的問題:“v-if 和 v-show 有什么區別?我們應該在什么情況下使用 v-if,什么情況下使用 v-show 呢?”

很多同學一聽,這不太簡單了,基礎八股文啊(官網中也有明確的文檔說明),瞧不起誰呢?直接來一通標準回答:“v-if 控制 dom 的渲染,v-show 通過 css 控制 dom 的顯示。如果切換頻繁,那么就使用 v-show,否則就使用 v-if”。

這都 2025 了,如果你還這么說,那真的是 out 了......

因為,面試官接下來的一個問題,可能就會直接讓你無法回答:“那么,什么情況下叫做切換頻繁,什么情況下叫做切換不頻繁呢?”

是啊,什么是頻繁,什么是不頻繁呢?

我們無法判斷 dom 是否頻繁切換

假如:有一個用戶表單,表單上存在一個“角色”按鈕:

圖片圖片

點擊角色按鈕,彈出一個 dialog 彈出層:

圖片圖片

那么此時,角色 dialog 的切換是否頻繁呢? 我相信很多同學都沒有辦法給出一個確切的答案吧。

所以說:

在實際開發中:開發者是無法判斷 dom 是否頻繁切換的

v-if 和 v-show 的真實使用場景

我們可以回憶下日常工作中的真實場景,決定使用 v-if 和 v-show 的依據是什么呢?

其核心應該是:v-if 會導致 組件(dom)的重新渲染,但是 v-show 不會。

重新渲染就意味著:整個生命周期會重新執行。 當 v-if 為 false 時,整個組件是不存在的,而變為 true 之后,組件會重新執行所有的生命周期回調。假如我們在 created 這種生命周期鉤子中執行了 接口請求 的方法,這就意味著 此時接口的請求才會觸發 。如果接口觸發會 依賴其他參數(如:props) 那么此時的請求時機會剛剛好。

而對于 v-show 而言,整個生命周期只會觸發一次。 當 v-show 為 false 時,組件雖然看不到,但是 已經存在了。這也就意味著,假如我們在 created 這種生命周期鉤子中執行了 接口請求 的方法, 此時接口已經請求了,如果接口請求中涉及到 點擊之后才可以獲取的參數(props),那么此時因為沒有點擊,所以你可能會得到一個錯誤。

該問題如何回答

所以,基于以上原因,這個問題大家可以這么說(以下回答僅供參考):

Vue 官方中對 v-if 和 v-show 的使用場景區分是:當需要頻繁顯示和隱藏的時候,那么需要使用 v-show 否則需要使用 v-if。

但是在實際的開發中我們是 無法分辨一個場景(Dialog)是否是頻繁切換的。

所以說,在實際開發中,判斷 v-if 和 v-show 的使用需要根據它們的特性來進行判斷。

v-show 不會導致組件被銷毀和渲染,但是 v-if 會導致組件被銷毀和重新渲染。

也就是說:當使用 v-show 時,雖然用戶看不到組件,但是當前組件的生命周期都已經執行了。如果在 created 中存在接口的調用,則【接口已經調用完成】。同時,當組件隱藏時,組件并不會銷毀。相反:如果是 v-if 的每次點擊時都會重新渲染組件,重新執行生命周期,隱藏則銷毀組件。

所以說,判斷 v-if 和 v-show 的使用條件應該是:當組件需要在指定時機創建,在指定時機銷毀時,需要使用 v-if。而 當組件僅需要創建一次時,則可以使用 v-show。

責任編輯:武曉燕 來源: 程序員Sunday
相關推薦

2024-04-22 00:00:00

v-ifv-show組件

2018-04-04 14:41:35

前端JavaScript面試

2010-08-12 10:43:19

Flex數據綁定

2013-07-29 11:04:29

App升級

2024-04-24 12:45:06

index性能數組

2022-02-21 09:03:19

Python

2022-12-27 08:01:09

設計模式https://mp

2010-11-17 11:24:30

跳槽

2011-01-05 15:38:02

職場

2012-07-11 10:21:43

Firefox升級

2009-01-11 10:23:00

網絡掉線頻繁掉線

2010-08-24 09:11:05

無線網絡故障

2019-10-31 10:01:54

無人駕駛自動駕駛L4級

2009-04-28 13:18:42

卡飯社區惡意代碼金山毒霸

2009-02-06 09:52:00

路由器啟動故障

2024-03-01 10:08:43

計算機視覺工具開源

2010-01-12 09:25:17

Windows 7死機系統特效

2017-11-06 16:30:33

開源

2013-04-01 09:43:24

2021-01-08 15:58:52

比特幣加密貨幣金融
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人精品 | 亚洲视频在线观看一区二区三区 | 亚洲午夜精品久久久久久app | 黄色大片免费观看 | 国产精品无码永久免费888 | 黄色一级免费观看 | 日韩在线播放一区 | 午夜免费福利片 | 一级欧美黄色片 | av手机免费在线观看 | 大象视频一区二区 | 久久久www成人免费无遮挡大片 | 色网站在线 | 亚洲国产二区 | 五月婷婷中文 | 午夜码电影 | 天天操天天摸天天干 | 国产午夜精品视频 | 一区二区三区四区日韩 | 人人鲁人人莫人人爱精品 | 韩日一区 | 91中文| 精品视频在线观看 | 96久久久久久 | 国产电影一区二区 | 一区精品国产欧美在线 | 本道综合精品 | 日韩成人免费视频 | 丝袜美腿av | 久久成人精品视频 | 亚洲视频www | 羞羞视频在线观看 | 浴室洗澡偷拍一区二区 | 亚洲 欧美 日韩 在线 | 亚洲精品久久久一区二区三区 | 久久久高清| 亚洲欧美日韩一区 | 97成人在线 | 草草草影院 | 国产精品久久av | 99久久日韩精品免费热麻豆美女 |