React Academy · Pelajaran

Pemilih & Mencegah Pemaparan Semula yang Tidak Perlu

Ekstrak hirisan keadaan tertentu melalui pemilih supaya komponen hanya dipaparkan semula apabila diperlukan.

Pelajaran 2 daripada 413 langkah

Pemilih & Mencegah Pemaparan Semula yang Tidak Perlu ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

Dalam pelajaran ini, Anda akan menggunakan pemilih Zustand untuk melanggan komponen kepada pecahan keadaan yang diperlukannya sahaja, sekali gus mencegah paparan semula yang tidak perlu apabila bahagian lain store berubah.

Masalah Pemilih Lalai

Memanggil hook store tanpa pemilih mengembalikan keseluruhan objek store. Komponen dipaparkan semula pada EVERY perubahan store, termasuk perubahan pada keadaan yang tidak berkaitan.
// Bad: re-renders on every store change
const store = useAppStore();
return <p>{store.user.name}</p>;

Menggunakan Pemilih

Hantarkan fungsi pemilih kepada hook store. Komponen hanya dipaparkan semula apabila nilai yang dikembalikan pemilih berubah.
// Good: re-renders only when user.name changes
const name = useAppStore(s => s.user.name);
return <p>{name}</p>;

Semakan Kesamaan Rujukan

Zustand menggunakan kesamaan ketat (===) secara lalai. Jika pemilih Anda mengembalikan objek atau tatasusunan baharu setiap kali dipanggil, komponen akan dipaparkan semula walaupun kandungannya sama.
// Creates a new object every time — always re-renders!
const info = useStore(s => ({ id: s.id, name: s.name }));

Membaiki dengan Kesamaan Cetek

Import `shallow` daripada zustand dan hantarkannya sebagai fungsi kesamaan untuk mengelakkan paparan semula apabila kandungan objek sama.
import { shallow } from 'zustand/shallow';

const info = useAppStore(
  s => ({ id: s.id, name: s.name }),
  shallow // compare by content, not reference
);

Memilih Berbilang Nilai

Gunakan corak kesamaan cetek untuk memilih berbilang nilai serentak tanpa menyebabkan paparan semula yang tidak perlu.
const { items, loading } = useCartStore(
  s => ({ items: s.items, loading: s.loading }),
  shallow
);

Rujukan Tindakan Stabil

Tindakan, iaitu fungsi dalam Zustand, mempunyai rujukan yang stabil — tindakan tersebut tidak berubah apabila keadaan dikemas kini. Anda boleh memilihnya tanpa shallow dan tindakan itu tidak akan menyebabkan paparan semula.
// Actions are always stable — no shallow needed
const addToCart = useCartStore(s => s.addToCart);

Pembantu useShallow (Zustand v5+)

Zustand v5 menyediakan utiliti useShallow yang membalut pemilih secara automatik dengan kesamaan cetek, lalu menjadikan kod lebih kemas.
import { useShallow } from 'zustand/react/shallow';

const { items, loading } = useCartStore(
  useShallow(s => ({ items: s.items, loading: s.loading }))
);

Menggabungkan Pemilih

Dapatkan nilai terhitung dalam pemilih untuk mengelakkan penyimpanan keadaan terbitan dalam store. Kira jumlah, senarai yang ditapis atau rentetan berformat dalam pemilih.
const totalPrice = useCartStore(
  s => s.items.reduce((sum, item) => sum + item.price, 0)
);

Menganalisis Paparan Semula Zustand

Gunakan React DevTools Profiler untuk mengesahkan bahawa pemilih Anda berfungsi. Selepas menambah item yang tidak berkaitan ke dalam store, semak bahawa komponen yang hanya menggunakan pemilih nama TIDAK muncul dalam graf api komit.

Semakan Pantas

Mengapakah Anda perlu menggunakan kesamaan cetek apabila pemilih Zustand mengembalikan objek?

Ringkasan

Sentiasa gunakan pemilih khusus. Gunakan kesamaan cetek apabila memilih berbilang nilai sebagai objek. Dapatkan nilai terhitung dalam pemilih. Tindakan mempunyai rujukan stabil dan tidak memerlukan shallow.

Seterusnya

Pelajaran seterusnya: **Mengekalkan Keadaan dengan Perisian Tengah Persist** — Anda akan menyegerakkan keadaan Zustand ke localStorage menggunakan perisian tengah persist.
Percuma untuk bermula

Pelajari React dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
88
Pelajaran
324

Soalan Lazim

Adakah pelajaran “Pemilih & Mencegah Pemaparan Semula yang Tidak Perlu” percuma?

Ya — teks penuh “Pemilih & Mencegah Pemaparan Semula yang Tidak Perlu” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pemilih & Mencegah Pemaparan Semula yang Tidak Perlu”?

Ekstrak hirisan keadaan tertentu melalui pemilih supaya komponen hanya dipaparkan semula apabila diperlukan. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan React Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Pemilih & Mencegah Pemaparan Semula yang Tidak Perlu” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mencipta Gedung Zustand Pertama Anda
  2. Pemilih & Mencegah Pemaparan Semula yang Tidak Perlu
  3. Mengekalkan Keadaan dengan Perisian Tengah Persist
  4. DevTools Zustand & Pengujian Gedung
← Kembali ke React Academy