當面試官問你Vue響應式原理,你可以這麼回答他

2021-09-20 07:50:22 字數 1481 閱讀 2027

vue的響應式是如何實現的?

聽過太多回答,通過object.defineproperty,可是再詳細的問時,對方渾然不知。

先擼為敬

const observer = function(data) 

}const definereactive = function(obj, key) ,

set(newval)

val = newval;

// 當值發生變更時,通知依賴收集器,更新每個需要更新的watcher, // 這裡每個需要更新通過什麼斷定?dep.subs

dep.notify();

} });

}const observe = function(data)

const vue = function(options)

// 掛載函式 this.mount = function()

// 渲染函式 this.render = function()

} // 監聽this._data

observe(this._data);

}const watcher = function(vm, fn)

// 更新方法,用於觸發vm._render this.update = function()

// 這裡會首次呼叫vm._render,從而觸發text的get // 從而將當前的wathcer與dep關聯起來 this.value = fn();

// 這裡清空了dep.target,為了防止notify觸發時,不停的繫結watcher與dep, // 造成**死迴圈

dep.target = null;

}const dep = function()

} // 為當前收集器新增watcher this.addsub = function(watcher)

// 通知收集器中所的所有wathcer,呼叫其update方法 this.notify = function() }}

const vue = new vue(;

}})vue.mount(); // in get

vue._data.text = '123'; // in watcher update /n in get 複製**

這裡我們用不到100行的**,實現了乙個簡易的vue響應式。當然,這裡如果不考慮期間的過程,我相信,40行**之內可以搞定。但是我這裡不想省略,為什麼呢?我怕你把其中的過程自動忽略掉,怕別人問你相關東西的時候,明明自己看過了,卻被懟的啞口無言。總之,我是為了你好,多喝熱水。

dep的作用是什麼?

依賴收集器,這不是官方的名字蛤,我自己起的,為了好記。

用兩個例子來看看依賴收集器的作用吧。

希望通過這兩個例子,你已經大概清楚了dep的作用,有沒有原來就那麼回事的感覺?有就對了。總結一下吧(以下依賴收集器實為dep):

本文**掘金

當面試官問 你還有什麼想問的嗎 時,應該問什麼

經常面試別人,聽到各種不同的版本,最後這個環節,hr很有心機的問出這個問題,每個人的反應都是不一樣的。先舉乙個差點要被錄取,回答完這個問題後直接送走的勵志故事,這位仁兄是這樣問的 公司加班嚴重嗎?加班費怎麼算,這個我覺得還是說明白好。耐心回答下 聽說網際網路公司現在流行境外旅遊的福利,咱們也是網際網...

當面試官問你為什麼換工作的時候,你會怎麼回答?

其實換工作原因無非就幾點 薪資沒有達到期望值 與領導或同事相處不愉快 覺得自己是在浪費生命,沒有實現自己的人生價值。本來個人覺得這問題沒什麼可問的,可為什麼我以前面試的時候,老是碰到有人問這個問題?面試官們,你們到底想從這個問題中了解什麼呢?我如果告訴你我是因為 原因離職,那你是否覺得我太勢利,這種...

摘錄 面試官也許會這樣問你

回答樣本一 我對工資沒有硬性要求,我相信貴公司在處理我的問題上會友善合理。我注重的是找對工作機會,所以只要條件公平,我則不會計較太多。回答樣本二 我受過系統的軟體程式設計的訓練,不需要進行大量的培訓,而且我本人也對程式設計特別感興趣。因此,我希望公司能根據我的情況和市場標準的水平,給我合理的薪水。回...