速覽
- Firefox 將禁用 TLS 1.0/1.1
- React 16.13.0 發佈
- Chrome 新增 "默認為訪客" 模式以進行無狀態瀏覽
- GitHub 正式收購 npm
Firefox 74 發佈
Mozilla 在 3 月 10 日發佈了 Firefox 74 版本。Firefox 74 做了一些安全優化以及增加了一些新功能。
安全更新
Firefox 74 將禁用基於 TLS 1.0 和 TSL 1.1 協議的網站,不支持 TLS 1.2 版的網站將顯示一個錯誤頁面。
這將是首個禁止訪問使用 TLS 1.0 和 TLS 1.1 的 HTTPS 網站的瀏覽器版本。
Mozilla 計劃今年停用並在以後刪除 Firefox Web 瀏覽器中對 FTP 協議的支持。
由於 FTP 本身的安全問題,早在 2015 年 Google 和 Mozilla 工程師開始討論如何從Chrome 和 Firefox Web 瀏覽器中刪除 FTP。兩家公司都已經限制了與 FTP 相關的某些功能。Mozilla 開始阻止 Firefox 61 中網頁上加 FTP 的資源,而 Google 在 Chrome 76 中放棄了代理支持。
就 FTP 本身安全性來講,最好能使用 FTPS,FTPS是一種對常用的文件傳輸協議(FTP)添加傳輸層安全(TLS)和安全套接層(SSL)加密協議支持的擴展協議。
看到這個更新下的評論挺有趣的,哈哈哈。。。
安全漏洞修復:https://www.mozilla.org/en-US/security/advisories/mfsa2020-08/
開發者
Firefox 的 Debugger 增加了對嵌套 Web Worker 進行調試的支持,現在可以暫停並通過斷點逐步執行它們。
Firefox 增加了對新的 JavaScript 可選鏈接運算符(?.)和 CSS text-underline-position 的支持。
- 可選鏈操作符 ?.:能夠去讀取一個被連接對象的深層次的屬性的值而無需明確校驗鏈條上每一個引用的有效性。
<code>const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefined
/<code>
- text-underline-position:當 text-decoration 屬性的值設置為 underline 之後,可以用text-underline-position 屬性為其設置下劃線的位置。
<code>/* 只設置一個屬性值 */
text-underline-position: auto;
text-underline-position: under;
text-underline-position: left;
text-underline-position: right;
/* 設置多個屬性值 */
text-underline-position: under left;
text-underline-position: right under;
/* 全局屬性值 */
text-underline-position: inherit;
text-underline-position: initial;
text-underline-position: unset;/<code>
React 16.13.0 發佈
新增 Render 期間某些更新的警告
在渲染期間,React 組件不應在其他組件中引起副作用。
支持 setState 在渲染期間調用,但僅針對同一 component。如果 setState 在其他組件上的渲染期間調用,現在將看到警告:
<code>Warning: Cannot update a component from inside the function body of a different component./<code>
此警告將幫助您查找由於意外狀態更改導致的應用程序錯誤。在極少數情況下由於渲染而有意要更改另一個組件的狀態的情況,可以將 setState 調用包裝到 useEffect 中 。
新增樣式規則衝突的警告
當動態應用包含 CSS 屬性的簡寫和簡寫版本的 style 時,特定的更新組合可能會導致樣式不一致。例如:
<code>{ background: 'blue', backgroundColor: 'red' } :/<code>
{ backgroundColor: 'red' }
}>
...
現在, React 檢測到樣式規則衝突並記錄警告。要解決此問題,請勿在 style 道具中混合使用同一 CSS 屬性的簡寫版本和簡寫版本。
新增一些不推薦使用的字符串引用的警告
字符串引用是一箇舊的舊式API,不建議使用,以後將不推薦使用:
<code><button>/<code>
(一般不要將 String Refs 與 Refs 混淆,後者仍然得到完全支持。)
將來,我們將提供一個自動化腳本( codemod )以從 String Refs 遷移。但是,在少數情況下無法自動遷移。此版本僅在棄用之前針對那些情況添加了新的警告。
棄用 React.createFactory
React.createFactory用於使用工廠模式創建 React 組件,實際使用過程中完全可以用 JSX代替, 此版本向 React.createFactory 添加了棄用警告。它將在以後的主要版本中刪除。
或者你還可以用下面的方法達到同樣的效果:
<code>let createFactory = type => React.createElement.bind(null, type);/<code>
棄用 ReactDOM.unstable_createPortal 正式支持 ReactDOM.createPortal
Portal 可以有一個很形象的翻譯 —— “傳送門”。引用 程墨大佬的解釋:曾經有一款遊戲就叫做 Portal,玩家手上一杆很厲害很科幻的槍,朝牆上開一槍,就可以開出兩個“傳送門”,人鑽進這個傳送門,可以從另一個傳送門裡走出來,也就是說,兩個不同位置的傳送門之間形成了對接。
在 React 中 Portals 提供了一種很好的將子節點渲染到父組件以外的 DOM 節點的方式。
例如:我們在寫一個彈出框組件 Modal 時,這個組件其實不屬於父組件,但是由於我們要把它顯示出來,我們必須要把它掛在到父組件下,這是就可以用到 createPortal,我們將它渲染到父組件以外,但是我們可以通過 "傳送門" 把它彈出來~
Chrome 新增“默認為訪客”模式以進行無狀態瀏覽
Chrome 瀏覽器的 Windows,Linux 和 macOS 高級用戶現在可以使用新的“默認為訪客模式”功能。該功能允許用戶將網絡瀏覽器配置為始終以訪客模式啟動。在這種瀏覽模式下,Chrome退出瀏覽器後將刪除計算機上的所有瀏覽活動,從而為用戶提供“從會話到會話的無狀態瀏覽體驗”。
GitHub 正式收購 npm
3月14日 GitHub 正式完成了對 npm,Inc 的收購,博客中稱將集成 GitHub 和 npm 來提高開源軟件供應鏈的安全性,並使開發者能夠跟蹤從 GitHub 拉取請求到修復它的 npm 軟件包版本的更改。
開源安全是一個重要的全球性問題,隨著 GitHub Security Lab 的最新發布和 GitHub 的內置安全公告, GitHub 已做好充分準備,可以發揮作用。
閱讀更多 Echa攻城獅 的文章