【面接まとめ】一度失敗したbilibili面接まとめを覚える(3)

8986 ワード

トランスファゲート
  • 面接総括(1):HTMLレイアウト、CSSセレクタおよびJS基礎総合能力知識点
  • アルゴリズムの基礎:配列flat、重量除去および並べ替え
  • React Vee理解及び基礎知識
  • ドメイン間問題解決策
  • httpプロトコルステータスコード
  • キャッシュおよび更新の問題
  • webviewとオリジナルアプリケーションのインタラクション
  • サーバ側の知識
  • React,Vue,Angularはすでに先端界の三足鼎立の勢いを形成している.特にReactとVue、Reactの優れた生態とVueの完備した中国語ドキュメントは国内で、すでに大部分の会社の先端の第一選択技術スタックである.ReactとVueの基礎知識のポイントを知ることも必要です.次に、ReactとVueの基礎的なポイントを比較形式で整理し、最後に自分の認識を添付します.
    ps:最近仕事の内容がReactに接触することが多いかもしれませんが、Vue側は言葉が合わないかもしれません.発見したら、すぐに訂正します.
    ReactとVueの基礎知識の考点
    ライフサイクル
    React
    Reactのライフサイクルは大きく3種類に分けられます
  • 作成
  • componentWillMount--コンポーネントがマウントされる前にトリガーされる.
  • render--React要素からなる木を作成します.
  • componentDidMount--コンポーネントがマウントされた後にトリガーされ、この時ページにはすでにDOMが存在し、ここで要求などの操作を開始し、データの初期化を完了することを提案する.

  • 更新
  • componentWillReceiveProps-コンポーネントは上位のPropsに受け入れられます.ここではpropsでstateの値を変更できます.
  • shouldComponentUpdate--React最適化の重要なAPIは、そのコンポーネントが更新すべきかどうかを決定し、そのコンポーネントがPureComponentを継承すると、shouldComponentUpdateはpropsとstateを浅く比較して更新するかどうかを決定する.
  • componentWillUpate-コンポーネントは間もなく
  • を更新します.
  • render--React要素からなる木を作成します.
  • componentDidUpdate-コンポーネント更新済み
  • アンインストール
  • componentWillUnmount--コンポーネントが破棄されます.ここではタイマのクリーンアップ、RxJSの購読動作のキャンセルなど、メモリオーバーフローを防ぐことができます.


  • React V 16以降は、Fiberメカニズムが導入されているため、以前の部分APIが繰り返し呼び出される可能性があるため、ReactはライフサイクルのAPIを部分的に調整している.
  • 作成
  • componentWillMount static getDerivedStateFromProps(nextProps, state)--新しいAPIは静的な方法で、stateを更新するためにオブジェクトを返します.nullを返すと何も更新されません.ありがとうございます.
  • render
  • componentDidMount

  • 更新
  • componentWillReceiveProps static getDerivedStateFromProps
  • shouldComponentUpdate
  • componentWillUpate
  • render
  • getSnapshotBeforeUpdate-最近のレンダリング出力(DOMノードにコミット)の前に呼び出され、コンポーネントが変更される前にDOMからいくつかの情報(例えば、スクロール位置)をキャプチャすることができる.このライフサイクルの戻り値は、componentDidUpdate()にパラメータとして渡されます.
  • componentDidUpdate

  • アンインストール
  • componentWillUnmount


  • vue
    Vueのライフサイクルには、まず公式ドキュメントを添付します.
    Vueのライフサイクルも3つの段階に分けて比較され、vueのライフサイクルは基本的にネーミングで大体の意味がわかりますが、各段階のVueがどのような仕事をしたのかに重点を置いてお話しします.
  • 作成
  • beforeCreate-カオスが初めて開き、インスタンス初期化
  • が完了した.
  • created-インスタンスの作成が完了し、data属性の初期化が完了し、アクセス可能であるが、DOM
  • にマウントされていない.
  • beforeMount-templateをコンパイルしますが、dataはビュー
  • にバインドされていません.
  • mounted-dataのビューへのバインドを完了し、マウントDOM動作
  • を完了する.
  • 更新
  • beforeUpdate-既存のDOM
  • には、DOM更新前にアクセスできる.
  • updated——DOM更新完了
  • アンインストール
  • beforeDestory-フック関数は、インスタンスが破棄される前に呼び出される.このステップでは、インスタンスは依然として完全に使用可能であり、タイマのクリーンアップなどのメモリオーバーフロー防止動作はここで完了し、
  • .
  • destroyed-フック関数は、Vueインスタンスが破棄された後に呼び出される.呼び出し後、Vueインスタンスが示すすべてのものがバインド解除され、すべてのイベントリスナーが削除され、すべてのサブインスタンスも破棄されます.


  • コンポーネント通信-親子コンポーネント
    React
    class Parent extends Component {
        state = { a: 6 }
        
        changeA = () => this.setState({ a: this.state.a + 1 })
    
        render() {
            return (
                
    , props a={this.state.a} // => , this changeA={this.changeA} />
    ) } }
    class Child extends Component {
        render() {
            return (
                
    {this.props.a}