做者:Louis Petrik
譯者:前端小智
來源:medium
點贊再看,養成習慣本文
GitHub
https://github.com/qq44924588... 上已經收錄,更多往期高贊文章的分類,也整理了不少個人文檔,和教程資料。歡迎Star和完善,你們面試能夠參照考點複習,但願咱們一塊兒有點東西。javascript
React在過去幾年變得愈來愈受歡迎。隨之而來的是愈來愈多的庫的發佈,給咱們帶來了新的可能性,但最重要的是讓開發這工做變得愈來愈簡單。css
在本文中,介紹 5 個 React 庫,但願能給你帶來一些幫助。html
我認爲React中的 Portals(傳送門) 對大多數人來講都很熟悉,即便它們不多被使用。下面是 Reac t文檔中對它們的描述:前端
Portal 提供了一種將子節點渲染到存在於父組件之外的 DOM 節點的優秀的方案。
一般,咱們的整個 React 應用程序都是在HTML中的一個 DOM 節點中渲染的。可是經過portals,咱們能夠定義附加的節點,在這些節點上咱們能夠掛載應用程序的各個部分,例如單個獨立的組件。java
然而,在官方文檔中,門戶以一種至關麻煩和複雜的方式進行描述,這就是也 react-portal
出現的一個緣由。node
如今是 react-portal 用法:react
import { Portal } from ‘react-portal’ <Portal node={document && document.getElementById(‘portal’)}> <p>This is portaled into the portal div!</p> </Portal>
只需使用 選擇器(如getElementById
)將HTML代碼中的portal
容器做爲目標,就能夠了。git
在React.js應用程序的public/index.html
文件中:github
<div id=」root」></div> <div id=」portal」></div>
如上所見,每一個React應用程序所需的根元素都像往常同樣存在,使用了portal
咱們就能夠將元素指定到與根同級的位置。web
固然,咱們也能夠動態切換portal
{this.state.show ? ( <Portal node={document && document.getElementById(‘portal’)}> <p>Portal content</p> </Portal> ) : null}
在現代web開發中,爲終端用戶提供動態信息是絕對必要的。不幸的是,JavaScript 中的alert()
函數不是實現此目的的好選擇,這一點你們都很清楚,因此纔會出現各類各樣的 UI 庫。
這裏介紹一個 React 提示插件 react-toastify ,它是一個很小且可自定義的庫,如下是官方給出的事例:
用法以下:
import { ToastContainer, toast } from 'react-toastify' import 'react-toastify/dist/ReactToastify.css' toast.configure({ autoClose: 2000, draggable: false, position: toast.POSITION.TOP_LEFT }) const notify = () => toast('Wow so easy !') const App = () => ( <div className="App"> <button onClick={notify}>Notify !</button> </div> )
一步一步說下:
toast
,autoClose
的意思是toast
過了多長時間就會自動消失。toast()
函數,就可讓toast
出現。更酷的功能
咱們還能夠在toast
中放入JSX:const notify = () => toast(<h1>Big Text</h1>)
。
autoClose
能夠替換爲false
,所以它永遠不會自動關閉。
你們都說簡歷沒項目寫,我就幫你們找了一個項目,還附贈【搭建教程】。
很難想象沒有上下文菜單的應用,這在網站上也是很不尋常。 這再也不是由於愈來愈多的Web應用程序接近真實的桌面應用程序,而這些應用程序一般已經提供了相似的良好性能和許多功能,而這些功能是咱們多年前從未指望過的。
這些功能之一是用戶對右鍵單擊的評估,這種評估在網站上愈來愈多地使用。 固然,那些是帶有許多UI元素的更復雜的控件。
一般用於顯示所謂的上下文菜單,爲此目的,有一個很是方便的React.js庫。用法以下:
import React from 'react' import { ContextMenu, MenuItem, ContextMenuTrigger } from 'react-contextmenu' const App = () => ( <React.Fragment> <ContextMenuTrigger id="TriggerID"> {/* ID for every instance must be individual */} <p>Right click on me!</p> </ContextMenuTrigger> <ContextMenu id="MenuID"> <MenuItem onClick={() => alert('first ')}> <button>1. Item</button> </MenuItem> <MenuItem onClick={() => alert('second')}> <button>2. Item</button> </MenuItem> </ContextMenu> </React.Fragment> ) export default App
<ContextMenuTrigger>
是咱們須要右鍵單擊以切換菜單的組件。菜單自己是在<ContextMenu>
包裝器中定義的。對於每一個項,都有一個<MenuItem>
組件,咱們能夠給它一個onClick
事件來處理咱們的用戶輸入。
在咱們的網站上展現大量的圖片須要一段時間。一般,已加載和忽然出現的圖片會致使用戶對UI產生不愉快的體驗,固然咱們但願避免這種狀況。
一個爲用戶優化有關圖像的全部功能的強大庫是response-lazy-load-image-component。咱們不只能夠建立一個良好的模糊效果,就像我下面的例子,以橋樑加載的圖像,但咱們也能夠延遲加載圖像。這能夠在下面的官方示例中看到:
用戶界面設計的一個重要規則是,認真評估儘量多的用戶輸入。 每一個人都應該清楚這一點,可是有時可能很難將這樣的東西實現爲代碼。
一個能夠想象的例子是用戶摺疊的菜單。若是你想再次關閉它,90%
的用戶傾向於簡單地點擊網站的死區(即那些自己不會產生反應的元素)。在幾乎全部的專業網站上,這是徹底相同的。要關閉菜單,只需再次單擊它的旁邊,而不是直接在它上切換。
有一個庫能夠知足這類的操做,它就是response-onclickoutside,它容許咱們處理實際元素以外的單擊事件。
在下面的示例中,你能夠看到咱們如何爲一個簡單的h1
和button
實現此功能。僅當單擊除這兩個以外的任何內容時,console.log
纔會輸出。處理此事件的函數必須調用handleClickOutside
。
import React, { Component } from 'react' import onClickOutside from 'react-onclickoutside' class App extends Component { handleClickOutside = evt => { console.log('You clicked outside!') } render() { return ( <div> <h1>Click outside!</h1> <button>Don't click me!</button> </div> ) } } export default onClickOutside(App)
但願對您有所幫助。 謝謝閱讀!
來源:https://webdevhub.net/article...
代碼部署後可能存在的BUG無法實時知道,過後爲了解決這些BUG,花了大量的時間進行log 調試,這邊順便給你們推薦一個好用的BUG監控工具 Fundebug。
文章每週持續更新,能夠微信搜索「 大遷世界 」第一時間閱讀和催更(比博客早一到兩篇喲),本文 GitHub https://github.com/qq449245884/xiaozhi 已經收錄,整理了不少個人文檔,歡迎Star和完善,你們面試能夠參照考點複習,另外關注公衆號,後臺回覆福利,便可看到福利,你懂的。