真的不要錯過這幾個 React 工具好嗎?

大家好,我是零一,今天是 React 實用小工具專場,主要為大家分享一些看到的比較有意思、提升效率的工具,大家可以按需了解使用

組件調(diào)試工具
寫過 Vue 的讀者一定用過官方提供的一個瀏覽器調(diào)試工具 vue-devtool[1],它支持在瀏覽器中調(diào)試組件時,點擊對應(yīng)的按鈕打開該組件對應(yīng)你本地代碼的文件


這真的非常實用,而且是 Vue 官網(wǎng)提供的

那 React 有沒有類似的工具呢?有!今天給大家推薦兩個類似的調(diào)試工具:react-dev-inspector[2]、click-to-component[3]

react-dev-inspector
接入這個庫以后,在 React 應(yīng)用頁面按對應(yīng)的快捷鍵可以開啟兩個功能:

獲得類似 Chrome Devtool 元素審查的能力,鼠標移入任意元素即可顯示組件信息(組件名、組件對應(yīng)的文件路徑、元素寬高)
點擊任意元素即可跳轉(zhuǎn)到本地對應(yīng)代碼窗口
整體效果如下:


而且這個工具目前已經(jīng)支持了:Vite2、next.js、create-react-app、umi3

click-to-component
顧名思義,點擊后跳轉(zhuǎn)到組件,跟上一個工具功能類似,不過相對而言,我可能更喜歡這個工具

click-to-component 同樣是按快捷鍵開啟 點擊跳轉(zhuǎn) 的功能,不過可以由我們來選擇是跳轉(zhuǎn)當前點擊的這個元素還是跳轉(zhuǎn)到該元素所在的組件


相比 react-dev-inspector,這個工具使用起來比較方便,直接在根目錄引入組件即可,不用配置東西,開箱即用

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import './index.css';
+ import { ClickToComponent } from 'click-to-react-component';

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
+ <ClickToComponent />
    <App />
  </React.StrictMode>
);
看下完整的使用效果:


動畫工具
看到一個挺不錯 React 動畫庫,是搭配 react-router 使用的,做的是路由跳轉(zhuǎn)時,各頁面之間的移出和展示動畫,非常炫酷~ 很適合大家的個人項目或官網(wǎng)頁來使用

這個庫的名字叫 react-page-transition[4],使用方式非常簡單,在 router 組件外層包裹一層即可,并可以自定義設(shè)置動畫

import React from 'react';
import { BrowserRouter, Switch, Route, Link } from 'react-router-dom';
+ import { PageTransition } from '@steveeeie/react-page-transition';
import './styles.css';

const Links = () => (
  <>
    <Link to="/">Home</Link>
    <Link to="/about">About</Link>
  </>
);

const Home = props => <h1>Home</h1>;

const About = props => <h1>About</h1>;

export default function App() {
  return (
    <BrowserRouter>
      <Links />
      <Route
        render={({ location }) => {
          return (
+           <PageTransition
+             preset="moveToLeftFromRight"
+             transitionKey={location.pathname}
+           >
              <Switch location={location}>
                <Route exact path="/" component={Home} />
                <Route exact path="/about" component={About} />
              </Switch>
+           </PageTransition>
          );
        }}
      />
    </BrowserRouter>
  );
}
這個庫預設(shè)了很多很多很多動畫(preset)供我們使用,至于有多少嘛,給大家瞅一眼:


preset
簡單看幾個炫酷的動畫吧



還不趕緊用起來?

工具類
最近沒看到太多好用的工具,就簡單推薦一個吧,也是日常經(jīng)常碰到的需求:復制文本到剪切板,我想應(yīng)該沒人會自己原生手寫吧?畢竟兼容性那么差,大家都會選擇用成熟的庫,一般我們用的都是 copy-to-clipboard[5],它是命令式編程的使用方式,然后在 React 里大家可能更習慣了聲明式編程,那就可以用 react-copy-to-clipboard[6],它也是基于 copy-to-clipboard 封裝的

兩者使用區(qū)別如下:

// copy-to-clipboard
copy('Text', {
  debug: true,
  message: 'Press #{key} to copy',
});

// react-copy-to-clipboard
<CopyToClipboard
  onCopy={this.onCopy}
  text={this.state.value}>
  <button onClick={this.onClick}>復制</button>
</CopyToClipboard>
最后
好了,今天的分享到此結(jié)束,希望能幫助到大家~


作者:零一


歡迎關(guān)注微信公眾號 :前端印象