1. 程式人生 > 實用技巧 >【interview】2020.07.24 谷歌不相容的 setImmediate、如何通過路由找到路由元件的、思考 axios 分析 Promise 封裝 ajax

【interview】2020.07.24 谷歌不相容的 setImmediate、如何通過路由找到路由元件的、思考 axios 分析 Promise 封裝 ajax

一、谷歌不相容的window.setImmediate()

在 MDN 上看window.setImmediate() 描述

該方法可能不會被批准成為標準,目前只有最新版本的 Internet Explorer 和Node.js 0.10+實現了該方法。

它遇到了 Gecko(Firefox) 和Webkit (Google/Apple) 的阻力.

  • 該特性是非標準的,所以說、請儘量不要在生產環境中使用它!
  • 語法
  • var immediateID = setImmediate(func, [param1, param2, ...]);
    var immediateID = setImmediate(func);

    window.clearImmediate 方法可以用來取消通過 setImmediate 設定的將要執行的語句, 就像 window.clearTimeout 對應於 window.setTimeout一樣.

因為其相容性不好,所以會用 setTimeout(fn, 0) 來代替,常用來: 處理 繁重任務(陣列操作等等)以避免 js 執行阻塞 ui 的更新

二、vue/react 是如何通過路由找到路由元件的?

通過配置 路由

根據訪問的 path 來切換到對應的元件

程式設計時,將元件 (components) 對映到路由 (routes),然後告訴 Vue Router 在哪裡渲染它們

mode: 'hash'

23

3w

3

3

mode: 'history'

會根據 pushState 和 replaceState 操作 瀏覽器的 history 物件

history 的變化 會觸發

1

1

1

1

1

1

1