2022-07-27

1窑滞、vue中父子組件傳值毡证,父組件異步請求电爹,子組件不能實(shí)時更新怎么解決?(vue中數(shù)據(jù)不能實(shí)時更新怎么解決料睛?)
首先了解父子組件生命周期執(zhí)行順序 ==>
加載渲染數(shù)據(jù)過程
父組件 beforeCreate -->
父組件 created -->
父組件 beforeMount -->
子組件 beforeCreate -->
子組件 created -->
子組件 beforeMount -->
子組件 mounted -->
父組件 mounted -->
原因:因?yàn)樯芷谥粫?zhí)行一次丐箩,數(shù)據(jù)是要等到異步請求以后才能拿到,那么子組件的mounted鉤子執(zhí)行的時候恤煞,還沒有拿到父組件傳遞過來的數(shù)據(jù)屎勘,但是又必須要打印出來結(jié)果,那這樣的話居扒,就只能去打印props中的默認(rèn)值空字符串了概漱,所以打印的結(jié)果是一個空字符串。
解決辦法:
1.使用v-if控制組件渲染的時機(jī)
初始還沒拿到后端接口的異步數(shù)據(jù)的時候喜喂,不讓組件渲染瓤摧,等拿到的時候再去渲染組件竿裂。使用v-if="變量"去控制,初始讓這個變量為false姻灶,這樣的話铛绰,子組件就不會去渲染,等拿到數(shù)據(jù)的時候产喉,再讓這個變量變成true捂掰。
2.使用watch監(jiān)聽數(shù)據(jù)的變化
3.使用VueX

2、vue 首屏加載怎么優(yōu)化曾沈?

  1. 把不常改變的庫放到 index.html 中这嚣,通過 cdn 引入,然后找到 build/webpack.base.conf.js 文件塞俱,在 module.exports = { } 中添加以下代碼
    externals: {
    'vue': 'Vue',
    'vue-router': 'VueRouter',
    'element-ui': 'ELEMENT',
    }
    2.vue 路由的懶加載(import或者require懶加載姐帚。)
    3.不生成 map 文件,找到 config/index.js障涯,修改為 productionSourceMap: false
    4.vue 組件盡量不要全局引入
    5.使用更輕量級的工具庫
    6.開啟gzip壓縮

3罐旗、Vue 中 for循環(huán)為什么加 key?
為了性能優(yōu)化唯蝶, 因?yàn)関ue是虛擬DOM九秀,更新DOM時用diff算法對節(jié)點(diǎn)進(jìn)行一一比對,比如有很多l(xiāng)i元素粘我,要在某個位置插入一個li元素鼓蜒,但沒有給li上加key,那么在進(jìn)行運(yùn)算的時候征字,就會將所有l(wèi)i元素重新渲染一遍都弹,但是如果有key,那么它就會按照key一一比對li元素匙姜,只需要創(chuàng)建新的li元素畅厢,插入即可,不需要對其他元素進(jìn)行修改和重新渲染氮昧。
key也不能是li元素的index或详,因?yàn)榧僭O(shè)我們給數(shù)組前插入一個新元素,它的下標(biāo)是0郭计,那么和原來的第一個元素重復(fù)了,整個數(shù)組的key都發(fā)生了改變椒振,這樣就跟沒有key的情況一樣了

4昭伸、Vue 中 nextTick 作用與原理? 異步渲染澎迎、獲取DOM庐杨、Promise等。 Vue 在更新 DOM 時是異步執(zhí)行的,在修改數(shù)據(jù)后袭厂,視圖不會立刻更新沉眶,而是等同一事件循環(huán)中的所有數(shù)據(jù)變化完成之后,再統(tǒng)一進(jìn)行視圖更新填渠。所以修改完數(shù)據(jù)弦聂,立即在方法中獲取DOM,獲取的仍然是未修改的DOM氛什。nextTick的作用是:該方法中的代碼會在當(dāng)前渲染完成后執(zhí)行莺葫,就解決了異步渲染獲取不到更新后DOM的問題了。 n e x t T i c k 的 原 理 : nextTick的原理:nextTick的原理:nextTick本質(zhì)是返回一個Promise 枪眉。

應(yīng)用場景:在created()里面想要獲取操作Dom捺檬,把操作DOM的方法放在$nextTick中

5、vue生命周期
beforeCreate:創(chuàng)建前贸铜。此時堡纬,組件實(shí)例剛剛創(chuàng)建,還未進(jìn)行數(shù)據(jù)觀測和事件配置蒿秦,拿不到任何數(shù)據(jù)烤镐。
created:創(chuàng)建完成。vue 實(shí)例已經(jīng)完成了數(shù)據(jù)觀測渤早,屬性和方法的計算(比如props职车、methods、data鹊杖、computed和watch此時已經(jīng)拿得到)悴灵,未掛載到DOM,不能訪問到el屬性骂蓖,el屬性积瞒,ref屬性內(nèi)容為空數(shù)組常用于簡單的ajax請求,頁面的初始化登下。
beforeMount:掛載前茫孔。掛在開始之前被調(diào)用,相關(guān)的render函數(shù)首次被調(diào)用(虛擬DOM)被芳。編譯模板缰贝,把data里面的數(shù)據(jù)和模板生成html,完成了el和data 初始化畔濒,注意此時還沒有掛在html到頁面上剩晴。
mounted:掛載完成。也就是模板中的HTML渲染到HTML頁面中,此時可以通過DOM API獲取到DOM節(jié)點(diǎn)赞弥,$ref屬性可以訪問常用于獲取VNode信息和操作毅整,ajax請求,mounted只會執(zhí)行一次绽左。
beforeUpdate:在數(shù)據(jù)更新之前被調(diào)用悼嫉,發(fā)生在虛擬DOM重新渲染和打補(bǔ)丁之前,不會觸發(fā)附加地重渲染過程拼窥。
updated:更新后戏蔑。在由于數(shù)據(jù)更改導(dǎo)致地虛擬DOM重新渲染和打補(bǔ)丁之后調(diào)用,
beforeDestroy;銷毀前闯团。在實(shí)例銷毀之前調(diào)用辛臊,實(shí)例仍然完全可用。(一般在這一步做一些重置的操作房交,比如清除掉組件中的定時器 和 監(jiān)聽的dom事件)
destroyed:銷毀后彻舰。在實(shí)例銷毀之后調(diào)用,調(diào)用后候味,vue實(shí)列指示的所有東西都會解綁刃唤,所有的事件監(jiān)聽器會被移除。
其他:
activated:在keep-alive組件激活時調(diào)用
deactivated:在keep-alive組件停用時調(diào)用

6白群、New 操作符具體干了什么尚胞?
1.創(chuàng)建一個空對象: 并且 this 變量引入該對象,同時還繼承了函數(shù)的原型
2.設(shè)置原型鏈 空對象指向構(gòu)造函數(shù)的原型對象
3.執(zhí)行函數(shù)體 修改構(gòu)造函數(shù) this 指針指向空對象,并執(zhí)行函數(shù)體
4.判斷返回值 返回對象就用該對象,沒有的話就創(chuàng)建一個對象

7、module帜慢、export笼裳、import 有什么作用?
module粱玲、export躬柬、import 是 ES6 用來統(tǒng)一前端模塊化方案的設(shè)計思路和實(shí)現(xiàn)方案。
export抽减、import 的出現(xiàn)統(tǒng)一了前端模塊化的實(shí)現(xiàn)方案允青,整合規(guī)范了瀏覽器/服務(wù)端的模塊化方
法,用來取代傳統(tǒng)的 AMD/CMD卵沉、requireJS颠锉、seaJS、commondJS 等等一系列前端模塊不同的
實(shí)現(xiàn)方案史汗,使前端模塊化更加統(tǒng)一規(guī)范琼掠,JS 也能更加能實(shí)現(xiàn)大型的應(yīng)用程序開發(fā)。
import 引入的模塊是靜態(tài)加載(編譯階段加載)而不是動態(tài)加載(運(yùn)行時加載)停撞。
import 引入 export 導(dǎo)出的接口值是動態(tài)綁定關(guān)系瓷蛙,即通過該接口,可以取到模塊內(nèi)部實(shí)時的值

8、vue的雙向綁定原理速挑?
Vue.js 是采用數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式,通過 Object.defineProperty()來劫持各個屬性的 setter副硅,getter姥宝,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)恐疲。
1腊满、需要 observe 的數(shù)據(jù)對象進(jìn)行遞歸遍歷,包括子屬性對象的屬性培己,都加上 setter 和 getter碳蛋,
這樣的話,給這個對象的某個值賦值省咨,就會觸發(fā) setter肃弟,那么就能監(jiān)聽到了數(shù)據(jù)變化
2、compile 解析模板指令零蓉,將模板中的變量替換成數(shù)據(jù)笤受,然后初始化渲染頁面視圖,并將每個指令對應(yīng)的節(jié)點(diǎn)綁定更新函數(shù)敌蜂,添加監(jiān)聽數(shù)據(jù)的訂閱者箩兽,一旦數(shù)據(jù)有變動,收到通知章喉,更新視圖

9汗贫、描述下 vue 從初始化頁面--修改數(shù)據(jù)--刷新頁面 UI 的過程?
當(dāng) Vue 進(jìn)入初始化階段時秸脱,一方面 Vue 會遍歷 data 中的屬性落包,并用 Object.defineProperty 將它轉(zhuǎn)化成 getter/setter 的形式,實(shí)現(xiàn)數(shù)據(jù)劫持(暫不談 Vue3.0 的 Proxy)撞反;另一方面妥色,Vue 的指令編譯器 Compiler 對元素節(jié)點(diǎn)的各個指令進(jìn)行解析,初始化視圖遏片,并訂閱 Watcher 來更新試圖嘹害,此時 Watcher 會將自己添加到消息訂閱器 Dep 中,此時初始化完畢吮便。
當(dāng)數(shù)據(jù)發(fā)生變化時笔呀,觸發(fā) Observer 中 setter 方法,立即調(diào)用 Dep.notify(),Dep 這個數(shù)組開始遍歷所有的訂閱者髓需,并調(diào)用其 update 方法许师,Vue 內(nèi)部再通過 diff 算法,patch 相應(yīng)的更新完成對訂閱者視圖的改變。

10微渠、vue-router 有哪些鉤子函數(shù)?
關(guān)于 vue-router 中的鉤子函數(shù)主要分為 3 類
1搭幻、全局鉤子函數(shù)要包含 beforeEach
1,1)beforeEach 函數(shù)有三個參數(shù),分別是

1,2)to:router 即將進(jìn)入的路由對象

1,3)from:當(dāng)前導(dǎo)航即將離開的路由

1,4)next:function,進(jìn)行管道中的一個鉤子,如果執(zhí)行完了,則導(dǎo)航的狀態(tài)就是 confirmed
(確認(rèn)的)否則為 false,終止導(dǎo)航

2逞盆、單獨(dú)路由獨(dú)享組件
2,1)beforeEnter

3檀蹋、組件內(nèi)鉤子
3,1)beforeRouterEnter
3,2)beforeRouterUpdate
3,3)beforeRouterLeave

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市云芦,隨后出現(xiàn)的幾起案子俯逾,更是在濱河造成了極大的恐慌,老刑警劉巖舅逸,帶你破解...
    沈念sama閱讀 211,496評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桌肴,死亡現(xiàn)場離奇詭異,居然都是意外死亡琉历,警方通過查閱死者的電腦和手機(jī)坠七,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來善已,“玉大人灼捂,你說我怎么就攤上這事』煌牛” “怎么了悉稠?”我有些...
    開封第一講書人閱讀 157,091評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長艘包。 經(jīng)常有香客問我的猛,道長,這世上最難降的妖魔是什么想虎? 我笑而不...
    開封第一講書人閱讀 56,458評論 1 283
  • 正文 為了忘掉前任卦尊,我火速辦了婚禮,結(jié)果婚禮上舌厨,老公的妹妹穿的比我還像新娘岂却。我一直安慰自己,他們只是感情好裙椭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,542評論 6 385
  • 文/花漫 我一把揭開白布躏哩。 她就那樣靜靜地躺著,像睡著了一般揉燃。 火紅的嫁衣襯著肌膚如雪扫尺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,802評論 1 290
  • 那天炊汤,我揣著相機(jī)與錄音正驻,去河邊找鬼弊攘。 笑死,一個胖子當(dāng)著我的面吹牛姑曙,可吹牛的內(nèi)容都是我干的襟交。 我是一名探鬼主播,決...
    沈念sama閱讀 38,945評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼伤靠,長吁一口氣:“原來是場噩夢啊……” “哼婿着!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起醋界,我...
    開封第一講書人閱讀 37,709評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎提完,沒想到半個月后形纺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,158評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡徒欣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,502評論 2 327
  • 正文 我和宋清朗相戀三年逐样,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片打肝。...
    茶點(diǎn)故事閱讀 38,637評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡脂新,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出粗梭,到底是詐尸還是另有隱情争便,我是刑警寧澤,帶...
    沈念sama閱讀 34,300評論 4 329
  • 正文 年R本政府宣布断医,位于F島的核電站滞乙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鉴嗤。R本人自食惡果不足惜斩启,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,911評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望醉锅。 院中可真熱鬧兔簇,春花似錦、人聲如沸硬耍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽默垄。三九已至此虑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間口锭,已是汗流浹背朦前。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評論 1 266
  • 我被黑心中介騙來泰國打工介杆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人韭寸。 一個月前我還...
    沈念sama閱讀 46,344評論 2 360
  • 正文 我出身青樓春哨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親恩伺。 傳聞我的和親對象是個殘疾皇子赴背,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,500評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 組件化,既然是筆記晶渠,那么就不拖泥帶水了凰荚,都是一些必須要掌握的知識點(diǎn),今天的內(nèi)容就是組件化: 這聽起來會讓我們想到模...
    代碼俠客閱讀 101評論 0 0
  • 20220727 華為離職副總徐家駿給任正非的辭職信 提起華為褒脯,人們自然會想到任正非便瑟,而行內(nèi)人都知道,華為曾經(jīng)有個...
    sangrea1閱讀 233評論 0 2
  • ## 經(jīng)典bug:1.模板引擎的渲染## 難點(diǎn):### 0.vue總結(jié)#### 指令:```jsVue.direc...
    x_ng閱讀 255評論 0 0
  • 整理一下js面試題 1番川、Javascript的typeof返回值的類型有哪些 答:number到涂、string、bo...
    MisterL_90c3閱讀 821評論 0 0
  • 電商定義 電子商務(wù)是以網(wǎng)絡(luò)通信技術(shù)進(jìn)行的商務(wù)活動颁督。自己所處的地位和對電子商務(wù)參與的角度和程度的不同践啄,給出了許多不同...
    e87f66331aa4閱讀 70評論 0 0