自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

5個很棒的 React.js 庫,值得你親手試試!

開發(fā) 前端
React在過去幾年變得越來越受歡迎,隨之而來的是越來越多的庫的發(fā)布,給我們帶來了新的可能性。在本文中,介紹 5 個 React 庫,希望能給你帶來一些幫助。

React在過去幾年變得越來越受歡迎。隨之而來的是越來越多的庫的發(fā)布,給我們帶來了新的可能性,但最重要的是讓開發(fā)這工作變得越來越簡單。

在本文中,介紹 5 個 React 庫,希望能給你帶來一些幫助。

1. react-portal

我認為React中的 Portals(傳送門) 對大多數(shù)人來說都很熟悉,即使它們很少被使用。下面是 Reac t文檔中對它們的描述:

Portal 提供了一種將子節(jié)點渲染到存在于父組件以外的 DOM 節(jié)點的優(yōu)秀的方案。

通常,我們的整個 React 應用程序都是在HTML中的一個 DOM 節(jié)點中渲染的。但是通過portals,我們可以定義附加的節(jié)點,在這些節(jié)點上我們可以掛載應用程序的各個部分,例如單個獨立的組件。

然而,在官方文檔中,門戶以一種相當麻煩和復雜的方式進行描述,這就是也 react-portal 出現(xiàn)的一個原因。

現(xiàn)在是 react-portal 用法:

  1. import { Portal } from ‘react-portal’ 
  2. <Portal node={document && document.getElementById(‘portal’)}> 
  3.   <p>This is portaled into the portal div!</p> 
  4. </Portal> 

只需使用 選擇器(如getElementById)將HTML代碼中的portal容器作為目標,就可以了。

在React.js應用程序的public/index.html文件中:

  1. <div id=”root”></div> 
  2. <div id=”portal”></div> 

如上所見,每個React應用程序所需的根元素都像往常一樣存在,使用了portal我們就可以將元素指定到與根同級的位置。

當然,我們也可以動態(tài)切換portal

  1. {this.state.show ? ( 
  2.   <Portal node={document && document.getElementById(‘portal’)}>    
  3.     <p>Portal content</p> 
  4.   </Portal> 
  5. ) : null} 

2. react-toastify

在現(xiàn)代web開發(fā)中,為終端用戶提供動態(tài)信息是絕對必要的。不幸的是,JavaScript 中的alert()函數(shù)不是實現(xiàn)此目的的好選擇,這一點大家都很清楚,所以才會出現(xiàn)各種各樣的 UI 庫。

這里介紹一個 React 提示插件 react-toastify ,它是一個很小且可自定義的庫,以下是官方給出的事例:

 

 

用法如下:

  1. import { ToastContainer, toast } from 'react-toastify' 
  2. import 'react-toastify/dist/ReactToastify.css' 
  3. toast.configure({ 
  4.   autoClose: 2000, 
  5.   draggable: false, 
  6.   position: toast.POSITION.TOP_LEFT 
  7. }) 
  8. const notify = () => toast('Wow so easy !') 
  9.  
  10. const App = () => ( 
  11.   <div className="App"> 
  12.     <button onClick={notify}>Notify !</button> 
  13.   </div> 

一步一步說下:

  • 首先導入庫本身,但重要的是隨后導入所需的CSS。
  • 然后配置toast,autoClose的意思是toast過了多長時間就會自動消失。
  • 通過使用toast()函數(shù),就可以讓toast出現(xiàn)。

更酷的功能:

我們還可以在toast中放入JSX:

  1. const notify = () => toast(<h1>Big Text</h1>

autoClose可以替換為false,因此它永遠不會自動關閉。

3. react-contextmenu

很難想象沒有上下文菜單的應用,這在網(wǎng)站上也是很不尋常。這不再是因為越來越多的Web應用程序接近真實的桌面應用程序,而這些應用程序通常已經(jīng)提供了類似的良好性能和許多功能,而這些功能是我們多年前從未期望過的。

這些功能之一是用戶對右鍵單擊的評估,這種評估在網(wǎng)站上越來越多地使用。當然,那些是帶有許多UI元素的更復雜的控件。

通常用于顯示所謂的上下文菜單,為此目的,有一個非常方便的React.js庫。用法如下:

  1. import React from 'react' 
  2. import { ContextMenu, MenuItem, ContextMenuTrigger } from 'react-contextmenu' 
  3.  
  4. const App = () => ( 
  5.     <React.Fragment> 
  6.         <ContextMenuTrigger id="TriggerID"> {/* ID for every instance must be individual */}  
  7.             <p>Right click on me!</p> 
  8.         </ContextMenuTrigger> 
  9.  
  10.         <ContextMenu id="MenuID"> 
  11.             <MenuItem onClick={() => alert('first ')}> 
  12.                 <button>1. Item</button> 
  13.             </MenuItem> 
  14.  
  15.             <MenuItem onClick={() => alert('second')}> 
  16.                 <button>2. Item</button> 
  17.             </MenuItem> 
  18.         </ContextMenu> 
  19.     </React.Fragment> 
  20.  
  21. export default App 

<ContextMenuTrigger>是我們需要右鍵單擊以切換菜單的組件。菜單本身是在<ContextMenu>包裝器中定義的。對于每個項,都有一個<ContextMenu>組件,我們可以給它一個onClick事件來處理我們的用戶輸入。

4. react-lazy-load-image-component

在我們的網(wǎng)站上展示大量的圖片需要一段時間。通常,已加載和突然出現(xiàn)的圖片會導致用戶對UI產(chǎn)生不愉快的體驗,當然我們希望避免這種情況。

一個為用戶優(yōu)化有關圖像的所有功能的強大庫是response-lazy-load-image-component。我們不僅可以創(chuàng)建一個良好的模糊效果,就像我下面的例子,以橋梁加載的圖像,但我們也可以延遲加載圖像。這可以在下面的官方示例中看到:

 

 

5. react-onclickoutside

用戶界面設計的一個重要規(guī)則是,認真評估盡可能多的用戶輸入。每個人都應該清楚這一點,但是有時可能很難將這樣的東西實現(xiàn)為代碼。

一個可以想象的例子是用戶折疊的菜單。如果你想再次關閉它,90%的用戶傾向于簡單地點擊網(wǎng)站的死區(qū)(即那些本身不會產(chǎn)生反應的元素)。在幾乎所有的專業(yè)網(wǎng)站上,這是完全相同的。要關閉菜單,只需再次單擊它的旁邊,而不是直接在它上切換。

有一個庫可以滿足這類的操作,它就是response-onclickoutside,它允許我們處理實際元素之外的單擊事件。

在下面的示例中,你可以看到我們如何為一個簡單的h1和button實現(xiàn)此功能。僅當單擊除這兩個之外的任何內容時,console.log才會輸出。處理此事件的函數(shù)必須調用handleClickOutside。

  1. import React, { Component } from 'react' 
  2. import onClickOutside from 'react-onclickoutside' 
  3.  
  4. class App extends Component { 
  5.     handleClickOutside = evt => { 
  6.         console.log('You clicked outside!') 
  7.     } 
  8.  
  9.     render() { 
  10.         return ( 
  11.             <div> 
  12.                 <h1>Click outside!</h1> 
  13.                 <button>Don't click me!</button> 
  14.             </div> 
  15.         ) 
  16.     } 
  17.  
  18. export default onClickOutside(App) 

 

 

責任編輯:趙寧寧 來源: 大遷世界
相關推薦

2020-04-16 14:53:39

JavaScript開發(fā)

2020-03-08 13:24:47

JavaScript開發(fā)

2021-04-12 11:09:13

React開發(fā)

2025-01-17 09:29:42

2017-03-28 21:03:35

代碼React.js

2021-09-18 10:00:24

ReactJavaScript前端

2025-01-13 00:00:00

2017-02-09 15:19:14

2020-11-30 06:18:21

React

2021-09-27 10:52:06

React工具庫開發(fā)

2018-06-21 16:03:25

Vue.jsReact.js框架

2015-12-31 10:14:54

React.js開發(fā)Web應用

2016-11-14 15:51:42

JavaScriptAngular.jsReact.js

2022-06-08 08:03:51

React.jsReactJS 庫

2023-06-27 07:31:02

動畫庫React參數(shù)

2020-02-25 09:00:00

React前端框架

2020-10-09 11:54:33

Vue用戶的React

2022-08-05 09:25:27

React庫JavaScript工具

2021-01-13 11:03:20

Python數(shù)據(jù)代碼

2025-02-28 09:52:19

點贊
收藏

51CTO技術棧公眾號