Jadual Kandungan
Contoh komponen bentuk minimum
Berkongsi keadaan di pelbagai komponen
Rumah hujung hadapan web tutorial css Menguruskan Negeri dalam React Menggunakan Next-Next

Menguruskan Negeri dalam React Menggunakan Next-Next

Apr 20, 2025 am 10:57 AM

Menguruskan Negeri dalam React Menggunakan Next-Next

Artikel ini membina perbincangan sebelumnya mengenai pengurusan negeri menggunakan yang tidak dinyatakan, meneroka yang tidak dinyatakan, penggantinya. Leverage-next leverage react cangkuk dan API konteks untuk pengurusan negeri yang diperkemas, menawarkan pendekatan yang lebih efisien daripada pendahulunya, terutamanya memandangkan kemajuan dalam cangkuk React. Kami akan mengkaji pengurusan negeri tunggal dan pelbagai komponen menggunakan NEXT yang tidak dinyatakan. Kebiasaan dengan artikel yang tidak dinyatakan sebelumnya adalah berguna tetapi tidak diperlukan dengan ketat.

Contoh komponen bentuk minimum

Kami akan membuat borang reaksi mudah dengan input teks untuk nama dan butang hantar. Apabila penyerahan, nama itu akan dipaparkan di atas borang. Kod lengkap boleh didapati di GitHub. Contoh ini menggunakan Create React App dan Bootstrap.

Pertama, sediakan projek:

1

2

NPX Create-React-App-App-Next-Next-Form

CD Unded-Next-Form

Salin selepas log masuk

Pasang yang tidak dinyatakan:

1

2

3

4

5

# benang

Benang Tambah Next-Next

 

# npm

pemasangan npm-save unded-next

Salin selepas log masuk

Import modul yang diperlukan ke dalam App.js :

1

2

3

// src/app.js

Import React, {Usestate} dari 'React';

import {createContainer} dari "unsed-next";

Salin selepas log masuk

Buat cangkuk tersuai:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

// src/app.js

// ... import sebelumnya

 

const useForm = () => {

  const [input, setValue] = useState ("");

  const [nama, setName] = useState ("Barney Stinson");

 

  const handleInput = (event) => setValue (event.target.value);

  const updatename = (event) => {

    event.PreventDefault ();

    setName (input);

    setValue ("");

  };

 

  kembali {input, nama, handleinput, updatename};

};

Salin selepas log masuk

Buat bekas menggunakan createContainer :

1

2

3

4

// src/app.js

// ... kod sebelumnya

 

const formContainer = createContainer (useForm);

Salin selepas log masuk

Buat Komponen Borang:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

// src/app.js

// ... kod sebelumnya

 

const form = () => {

  borang const = formContainer.useContainer ();

  kembali (

    <div>

      <p>Helo! {form.name}</p>

      <form onsubmit="{form.updateName}">

        <input type="text" value="{form.input}" onchange="{form.handleInput}">

        <button type="submit">Simpan</button>

      </form>

    </div>

  );

};

Salin selepas log masuk

Balut komponen borang dengan pembekal dalam komponen aplikasi:

1

2

3

4

5

const app = () => (

  <formcontainer.provider>

    <form></form>

  </formcontainer.provider>

);

Salin selepas log masuk

Ini melengkapkan contoh bentuk minimum. Cuba bina aplikasi yang mudah dilakukan menggunakan konsep-konsep ini. Repositori rujukan boleh didapati.

Berkongsi keadaan di pelbagai komponen

Contoh ini menunjukkan perkongsian keadaan antara bentuk dan senarai tugasan. Nama pengguna, yang dikemas kini dalam borang, akan mencerminkan dalam senarai tugasan.

Buat projek baru dan pasangkan kebergantungan:

1

2

3

NPX Create-react-app unded-next-app

CD Unded-Next-App

benang tambah pendek yang tidak dinyatakan

Salin selepas log masuk

Buat store.js untuk menguruskan keadaan bersama:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

// src/store.js

import {useState} dari "React";

Import pendek dari "pendek";

import {CreateContainer} dari 'Undated-Next';

 

const useStore = () => {

  const [input, setValue] = useState ("");

  const [nama, setName] = useState ("Barney Stinson");

  const [todos, setTodos] = useState ([{id: 1, tajuk: 'tulis kod'}, {id: 2, tajuk: 'membeli susu'}]);

  const [item, setItem] = useState ("");

 

  const handleInput = (event) => setValue (event.target.value);

  const updatename = (event) => {

    event.PreventDefault ();

    setName (input);

    setValue ("");

  };

  const handleItem = (event) => setItem (event.target.value);

  const handlesubmit = (event) => {

    event.PreventDefault ();

    setTodos ([... todos, {id: shortid.generate (), tajuk: item}]);

    setItem ("");

  };

 

  kembali {input, nama, handleinput, updatename, todos, item, handleitem, handlesubmit};

};

 

eksport const StoreContainer = CreateContainer (UseStore);

Salin selepas log masuk

Buat form.js :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

// src/form.js

import bertindak balas daripada "bertindak balas";

import {StoreContainer} dari "./Store";

 

const formComponent = () => {

  borang const = StoreContainer.useContainer ();

  kembali (

    <div>

      <p>Helo! {form.name}</p>

      <form onsubmit="{form.updateName}">

        <input type="text" value="{form.input}" onchange="{form.handleInput}">

        <button type="submit">Tukar nama</button>

      </form>

    </div>

  );

};

 

Eksport Formponent Default;

Salin selepas log masuk

Buat todo.js :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

// src/todo.js

import bertindak balas daripada "bertindak balas";

import {StoreContainer} dari "./Store";

 

const todocomponent = () => {

  const todo = StoreContainer.useContainer ();

  kembali (

    <div>

      <p>Tambah todos</p>

      <form onsubmit="{todo.handleSubmit}">

        <input type="text" value="{todo.item}" onchange="{todo.handleItem}">

        <button type="submit">Tambah</button>

      </form>

      <p>Dear {todo.name}, berikut adalah tugas semasa anda:</p>

      <ul>

        {todo.todos.map ((item) =><li key="{item.id}"> {item.title}</li> )}

      </ul>

    </div>

  );

};

 

mengeksport todocomponent lalai;

Salin selepas log masuk

Kemas kini App.js :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Import bertindak balas daripada 'bertindak balas';

import todocomponent dari "./todo";

import formponent dari "./form";

import {StoreContainer} dari "./Store";

 

aplikasi fungsi () {

  kembali (

    <storecontainer.provider>

      <formcomponent></formcomponent>

      <todocomponent></todocomponent>

    </storecontainer.provider>

  );

}

 

aplikasi lalai eksport;

Salin selepas log masuk

Contoh yang disemak ini memberikan ilustrasi yang lebih lengkap dan berfungsi untuk perkongsian negara merentasi pelbagai komponen menggunakan NEXT-NEXT. Ingatlah untuk mengendalikan kesilapan dan kes kelebihan dalam persekitaran pengeluaran.

Atas ialah kandungan terperinci Menguruskan Negeri dalam React Menggunakan Next-Next. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1663
14
Tutorial PHP
1266
29
Tutorial C#
1239
24
Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Apr 09, 2025 am 11:29 AM

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

Cara Membina Komponen Vue dalam Tema WordPress Cara Membina Komponen Vue dalam Tema WordPress Apr 11, 2025 am 11:03 AM

Arahan template inline membolehkan kita membina komponen Vue yang kaya sebagai peningkatan progresif ke atas markup WordPress yang sedia ada.

PHP adalah A-OK untuk templat PHP adalah A-OK untuk templat Apr 11, 2025 am 11:04 AM

Templat PHP sering mendapat rap buruk untuk memudahkan kod subpar - tetapi itu tidak perlu berlaku. Mari kita lihat bagaimana projek PHP dapat menguatkuasakan asas

Perbandingan pembekal bentuk statik Perbandingan pembekal bentuk statik Apr 16, 2025 am 11:20 AM

Mari kita cuba menyusun istilah di sini: "Penyedia Borang Statik." Anda membawa html anda

See all articles