


[Organisasi dan perkongsian] 7 alat pengurusan keadaan React yang popular
Baru-baru ini saya sedang berusaha untuk menyusun susunan teknologi projek; 🎜>
Timbunan teknologi bersatu adalah Satu perkara yang sangat diperlukan; Ikuti saya hari ini Izinkan saya berkongsi dengan anda beberapa pengurusan negeri React yang sangat popular yang telah saya kumpulkan. Saya harap ia akan membantu anda.【 1. Mobx 】
MobX boleh dijalankan secara bebas daripada React, tetapi ia biasanya Digunakan bersama-sama; versi baharu pustaka mobx-react-lite sangat ringan; >【 2. Redux 】
Redux
Redux juga merupakan alat pengurusan negeri yang sangat popular, tetapi ia lebih rumit daripada pengurusan negeri lain alat; Sudah tentu, orang yang suka menggunakan Redux juga akan mendapati Redux sangat elegan; redux secara rasmi melancarkan Redux-tookit baharu sangat memudahkan langkah-langkah menggunakan Redux.
import React from "react" import ReactDOM from "react-dom" import { makeAutoObservable } from "mobx" import { observer } from "mobx-react-lite" class Timer { secondsPassed = 0 constructor() { makeAutoObservable(this) } increaseTimer() { this.secondsPassed += 1 } } const myTimer = new Timer() //被`observer`包裹的函数式组件会被监听在它每一次调用前发生的任何变化 const TimerView = observer(({ timer }) => <span>Seconds passed: {timer.secondsPassed} </span>) ReactDOM.render(<TimerView timer={myTimer} />, document.body)
【 3. Perlawanan semula 】
import { createStore } from 'redux' /** * This is a reducer - a function that takes a current state value and an * action object describing "what happened", and returns a new state value. * A reducer's function signature is: (state, action) => newState * * The Redux state should contain only plain JS objects, arrays, and primitives. * The root state value is usually an object. It's important that you should * not mutate the state object, but return a new object if the state changes. * * You can use any conditional logic you want in a reducer. In this example, * we use a switch statement, but it's not required. */ function counterReducer(state = { value: 0 }, action) { switch (action.type) { case 'counter/incremented': return { value: state.value + 1 } case 'counter/decremented': return { value: state.value - 1 } default: return state } } // Create a Redux store holding the state of your app. // Its API is { subscribe, dispatch, getState }. let store = createStore(counterReducer) // You can use subscribe() to update the UI in response to state changes. // Normally you'd use a view binding library (e.g. React Redux) rather than subscribe() directly. // There may be additional use cases where it's helpful to subscribe as well. store.subscribe(() => console.log(store.getState())) // The only way to mutate the internal state is to dispatch an action. // The actions can be serialized, logged or stored and later replayed. store.dispatch({ type: 'counter/incremented' }) // {value: 1} store.dispatch({ type: 'counter/incremented' }) // {value: 2} store.dispatch({ type: 'counter/decremented' }) // {value: 1}Berikut ialah beberapa ciri Perlawanan Semula:
Saiz kurang daripada 2kbTiada konfigurasi diperlukan
Kurangkan fail boilerplate Redux
import { createModel } from "@rematch/core"; import { RootModel } from "."; export const count = createModel<RootModel>()({ state: 0, // initial state reducers: { // handle state changes with pure functions increment(state, payload: number) { return state + payload; }, }, effects: (dispatch) => ({ // handle state changes with impure functions. // use async/await for async actions async incrementAsync(payload: number, state) { console.log("This is current root state", state); await new Promise((resolve) => setTimeout(resolve, 1000)); dispatch.count.increment(payload); }, }), });
Sokongan menambah pengurang secara dinamik
- Sokongan muat semula panasMembenarkan penciptaan berbilang kedaiMenyokong React NativePemalam boleh diperluaskan
- Kedai Rematch masih meneruskan beberapa kaedah penulisan Redux, tetapi ia umumnya diperkemas Banyak. Ia juga sangat mudah untuk bermula. 【 4. Recoil 】RecoilRecoil menyediakan model pengurusan keadaan baharu— —Model Atom , yang boleh mengendalikan logik keadaan kompleks dengan lebih baik. Jika anda perlu menggunakan Recoil dalam komponen, anda boleh meletakkan RecoilRoot di suatu tempat dalam komponen induk. Adalah lebih baik untuk menetapkannya sebagai komponen akar:
atom mewakili keadaan
. Atom boleh dibaca dan ditulis daripada mana-mana komponen. Komponen yang membaca nilai atom secara tersirat melanggan atom, jadi sebarang kemas kini atom akan menyebabkan komponen yang sepadan dengan atom itu dipaparkan semulaUntuk menggunakan keadaan atom, useRecoilState perlu diperkenalkan komponen:
【 5. Hookstate 】
import React from 'react'; import { RecoilRoot, atom, selector, useRecoilState, useRecoilValue, } from 'recoil'; function App() { return ( <RecoilRoot> <CharacterCounter /> </RecoilRoot> ); }
hookStateHookState juga sangat pustaka alat pengurusan keadaan yang mudah untuk anda mengakses status dengan mudah; Cipta keadaan dalaman
Keadaan bersarang
const textState = atom({ key: 'textState', // unique ID (with respect to other atoms/selectors) default: '', // default value (aka initial value) }); function CharacterCounter() { return ( <div> <TextInput /> <CharacterCount /> </div> ); } function TextInput() { const [text, setText] = useRecoilState(textState); const onChange = (event) => { setText(event.target.value); }; return ( <div> <input type="text" value={text} onChange={onChange} /> <br /> Echo: {text} </div> ); }Keadaan separa
Keadaan kosong
HookState terutamanya merangkumi dua Api HookState dan useHookState yang penting.
【 6. Jotai 】
- Jotai ialah pengurusan negeri yang primitif dan fleksibel untuk perpustakaan React . Ia serupa dengan Recoil, tetapi mempunyai saiz pakej yang lebih kecil, API yang lebih minimalis, sokongan TypeScript yang lebih baik, dokumentasi yang lebih luas dan tiada teg percubaan. Dengan Jotai, anda boleh menyimpan keadaan dalam satu kedai dan menggunakan cangkuk tersuai untuk mengakses dan mengemas kini keadaan.
- Di atas adalah contoh kod untuk menggunakan Jotai sangat mudah.
【 7. Zustand】
Zustand menyediakan cara mudah untuk mengurus keadaan dalam aplikasi React.
Ciri utamanya mudah digunakan dan ringan.
Zustand Code
使用Zustand,你可以将状态存储在一个单一的store中,并使用自定义的hooks来访问和更新状态。这使得状态管理变得非常简单和直观。
import create from 'zustand' const useStore = create((set) => ({ count: 0, increment: () => set((state) => ({ count: state.count + 1 })), decrement: () => set((state) => ({ count: state.count - 1 })), })) function Counter() { const { count, increment, decrement } = useStore() return ( <div> <h1>Count: {count}</h1> <button onClick={increment}>Increment</button> <button onClick={decrement}>Decrement</button> </div> ) }
使用Zustand也非常的简单!
在这个例子中,我们使用 create
函数创建了一个新的store,
并定义了一个名为 count
的状态和两个更新状态的
函数 increment
和 decrement
。
然后,我们使用 useStore
自定义 hook 来访问和更新状态。
【以上7个状态管理工具各有特点】
考虑到团队人员技术的参差不齐,未来项目的可维护、延展性;
建议大家选择入门简单,上手快的工具;
因为之前最早我们选择的是Redux,现在再回头看原来的项目,简直难以维护了。
如果你的团队还是倾向于Redux,这里建议还是使用Rematch比较好。
如果是还没使用状态管理,又想用的,建议使用mobx吧!
(学习视频分享:编程基础视频)
Atas ialah kandungan terperinci [Organisasi dan perkongsian] 7 alat pengurusan keadaan React yang popular. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ekosistem React termasuk perpustakaan pengurusan negeri (seperti redux), perpustakaan penghalaan (seperti reactrouter), perpustakaan komponen UI (seperti bahan-UI), alat ujian (seperti jest), dan alat bangunan (seperti webpack). Alat ini bekerjasama untuk membantu pemaju membangun dan mengekalkan aplikasi dengan cekap, meningkatkan kualiti kod dan kecekapan pembangunan.

Netflix menggunakan React sebagai kerangka depannya. 1) Model pembangunan komponen React dan ekosistem yang kuat adalah sebab utama mengapa Netflix memilihnya. 2) Melalui komponen, Netflix memisahkan antara muka kompleks ke dalam ketulan yang boleh diurus seperti pemain video, senarai cadangan dan komen pengguna. 3) Kitaran Hayat DOM dan Komponen Maya React mengoptimumkan kecekapan rendering dan pengurusan interaksi pengguna.

React adalah perpustakaan JavaScript yang dibangunkan oleh Meta untuk membina antara muka pengguna, dengan terasnya menjadi pembangunan komponen dan teknologi DOM maya. 1. Komponen dan Pengurusan Negeri: React menguruskan keadaan melalui komponen (fungsi atau kelas) dan cangkuk (seperti UseState), meningkatkan kebolehgunaan semula kod dan penyelenggaraan. 2. DOM maya dan pengoptimuman prestasi: Melalui DOM maya, bereaksi dengan cekap mengemas kini DOM sebenar untuk meningkatkan prestasi. 3. Kitaran Hidup dan Cangkuk: Cangkuk (seperti Useeffect) membolehkan komponen fungsi menguruskan kitaran hayat dan melakukan operasi kesan sampingan. 4. Contoh Penggunaan: Dari Komponen Helloworld Asas ke Pengurusan Negeri Global Lanjutan (USEContext dan

Kelebihan React adalah fleksibiliti dan kecekapannya, yang dicerminkan dalam: 1) Reka bentuk berasaskan komponen meningkatkan kebolehgunaan semula kod; 2) Teknologi DOM Maya mengoptimumkan prestasi, terutamanya apabila mengendalikan banyak kemas kini data; 3) Ekosistem yang kaya menyediakan sejumlah besar perpustakaan dan alat pihak ketiga. Dengan memahami bagaimana React Works dan menggunakan contoh, anda boleh menguasai konsep terasnya dan amalan terbaik untuk membina antara muka pengguna yang cekap dan boleh dipelihara.

Masa depan React akan memberi tumpuan kepada pembangunan komponen utama, pengoptimuman prestasi dan integrasi yang mendalam dengan susunan teknologi lain. 1) React akan memudahkan penciptaan dan pengurusan komponen dan mempromosikan perkembangan komponen utama. 2) Pengoptimuman prestasi akan menjadi tumpuan, terutamanya dalam aplikasi besar. 3) React akan disepadukan dengan teknologi seperti GraphQL dan TypeScript untuk meningkatkan pengalaman pembangunan.

Fungsi utama React termasuk pemikiran komponen, pengurusan negeri dan dom maya. 1) Idea komponenisasi membolehkan pemisahan UI menjadi bahagian yang boleh diguna semula untuk meningkatkan kebolehbacaan kod dan kebolehkerjaan. 2) Pengurusan Negeri menguruskan data dinamik melalui negeri dan prop, dan perubahan mencetuskan kemas kini UI. 3) Prestasi Pengoptimuman DOM Maya, kemas kini UI melalui pengiraan operasi minimum Replika DOM dalam ingatan.

React adalah perpustakaan JavaScript yang dibangunkan oleh Facebook untuk membina antara muka pengguna. 1. Ia mengamalkan teknologi DOM komponen dan maya untuk meningkatkan kecekapan dan prestasi pembangunan UI. 2. Konsep teras React termasuk komponenisasi, pengurusan negeri (seperti useState dan useeffect) dan prinsip kerja dom maya. 3. 4. Kesilapan umum seperti melupakan untuk menambah atribut utama atau kemas kini status yang salah boleh didebitkan melalui ReactDevTools dan log. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan react.memo, segmentasi kod dan menyimpan kod yang boleh dibaca dan mengekalkan kebolehpercayaan

Menggunakan HTML untuk membuat komponen dan data dalam React dapat dicapai melalui langkah -langkah berikut: Menggunakan sintaks JSX: React menggunakan sintaks JSX untuk membenamkan struktur HTML ke dalam kod JavaScript, dan mengendalikan DOM selepas penyusunan. Komponen digabungkan dengan HTML: Komponen React meluluskan data melalui props dan secara dinamik menghasilkan kandungan HTML, seperti. Pengurusan Aliran Data: Aliran data React adalah satu arah, diluluskan dari komponen induk kepada komponen kanak-kanak, memastikan aliran data dapat dikawal, seperti komponen aplikasi yang melewati nama untuk menyambut. Contoh penggunaan asas: Gunakan fungsi peta untuk membuat senarai, anda perlu menambah atribut utama, seperti membuat senarai buah. Contoh Penggunaan Lanjutan: Gunakan Hook UseState untuk menguruskan negeri dan melaksanakan dinamik
