Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Dela Tillstånd Mellan Komponenter Med Context | React Hooks och Context för Tillståndshantering
React Mastery

bookDela Tillstånd Mellan Komponenter Med Context

Context i React är en kraftfull funktion som möjliggör delning av data mellan komponenter utan att behöva explicit skicka props på varje nivå i komponentträdet. Med Context kan vi sprida data nedåt i komponenthierarkin, vilket gör den lättillgänglig för alla komponenter, oavsett deras position i trädet.

Observera

För att komma igång går vi igenom syntaxen steg för steg. Vi tillhandahåller en vägledning så att varje koncept blir tydligt. Att använda context kräver specifik kodimplementering på olika komponentnivåer. När vi har gått igenom syntaxen i detalj, fortsätter vi med ett praktiskt exempel.

Syntax:

Steg 1: Skapa ett nytt Context med hjälp av funktionen createContext() från React-biblioteket och tilldela det till en variabel. Detta bör göras på applikationens toppnivå. Vanligtvis görs detta i en separat fil (t.ex. context.js). Denna fil ansvarar för Context-objektet.

context.js

import { createContext } from "react";

// Create a new React context using the `createContext` function.
const Context = createContext();

// Export the created context so that it can be used in other parts of the application.
export default Context;

Steg 2: I App-filen omsluts alla komponenter som behöver tillgång till den delade datan med Provider-komponenten från den skapade Context. Provider-komponenten gör det möjligt att definiera värdet för context och göra det tillgängligt för alla barnkomponenter som konsumerar context.

App.jsx

import React from "react";

// Import the `Context` object from `../context`.
import Context from "../context";

// Import child components that need access to the shared data.
import ChildCompOne from "../ChildCompOne/ChildCompOne";
import ChildCompTwo from "../ChildCompTwo/ChildCompTwo";

const App = () => {
  return (
    // Wrap the child components with `Context.Provider`.
    <Context.Provider>
      <ChildCompOne />
      <ChildCompTwo />
    </Context.Provider>
  );
};

export default App;

Steg 3: I App-filen måste vi även tillhandahålla context-data. Detta görs genom att använda value-prop för Context.Provider-komponenten. All data som behövs tilldelas till value-prop.

App.jsx

import React from "react";

import Context from "../context";

import ChildCompOne from "../ChildCompOne/ChildCompOne";
import ChildCompTwo from "../ChildCompTwo/ChildCompTwo";

const App = () => {
  // Define any data that you want to share across child components.
  const sharedData = "Some shared data";

  return (
    // Provide the shared data as a value to `Context.Provider`.
    <Context.Provider value={sharedData}>
      <ChildCompOne />
      <ChildCompTwo />
    </Context.Provider>
  );
};

export default App;

Steg 4: I barnkomponenterna (ChildCompOne eller ChildCompTwo) kan den delade datan nås med hjälp av hooken useContext. För att använda useContext måste det skapade Context från context.js-filen skickas som argument.

ChildCompOne.jsx

import React, { useContext } from "react";

// Import the `Context` object from "../context"
import Context from "../context";

const ChildComponentOne = () => {
  // Use the `useContext` hook to access data from the `Context`
  const data = useContext(Context);

  // You can now use the shared data in this component

  return <div>{data} in the first component</div>;
};

export default ChildComponentOne;

Fullständig appkod:

Obs

Ta dig tid att gå igenom varje steg, öppna varje fil och mapp, för att säkerställa att du tydligt förstår processen. Nästa kapitel fortsätter med ett exempel som kombinerar Context och hooks. Detta gör att du kan se hur dessa koncept fungerar tillsammans i praktiken.

1. Vad är det primära syftet med att använda Context?

2. Vilken funktion används för att skapa en ny Context?

3. Hur tillhandahåller du context-data till barnkomponenter?

question mark

Vad är det primära syftet med att använda Context?

Select the correct answer

question mark

Vilken funktion används för att skapa en ny Context?

Select the correct answer

question mark

Hur tillhandahåller du context-data till barnkomponenter?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 10

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.17

bookDela Tillstånd Mellan Komponenter Med Context

Svep för att visa menyn

Context i React är en kraftfull funktion som möjliggör delning av data mellan komponenter utan att behöva explicit skicka props på varje nivå i komponentträdet. Med Context kan vi sprida data nedåt i komponenthierarkin, vilket gör den lättillgänglig för alla komponenter, oavsett deras position i trädet.

Observera

För att komma igång går vi igenom syntaxen steg för steg. Vi tillhandahåller en vägledning så att varje koncept blir tydligt. Att använda context kräver specifik kodimplementering på olika komponentnivåer. När vi har gått igenom syntaxen i detalj, fortsätter vi med ett praktiskt exempel.

Syntax:

Steg 1: Skapa ett nytt Context med hjälp av funktionen createContext() från React-biblioteket och tilldela det till en variabel. Detta bör göras på applikationens toppnivå. Vanligtvis görs detta i en separat fil (t.ex. context.js). Denna fil ansvarar för Context-objektet.

context.js

import { createContext } from "react";

// Create a new React context using the `createContext` function.
const Context = createContext();

// Export the created context so that it can be used in other parts of the application.
export default Context;

Steg 2: I App-filen omsluts alla komponenter som behöver tillgång till den delade datan med Provider-komponenten från den skapade Context. Provider-komponenten gör det möjligt att definiera värdet för context och göra det tillgängligt för alla barnkomponenter som konsumerar context.

App.jsx

import React from "react";

// Import the `Context` object from `../context`.
import Context from "../context";

// Import child components that need access to the shared data.
import ChildCompOne from "../ChildCompOne/ChildCompOne";
import ChildCompTwo from "../ChildCompTwo/ChildCompTwo";

const App = () => {
  return (
    // Wrap the child components with `Context.Provider`.
    <Context.Provider>
      <ChildCompOne />
      <ChildCompTwo />
    </Context.Provider>
  );
};

export default App;

Steg 3: I App-filen måste vi även tillhandahålla context-data. Detta görs genom att använda value-prop för Context.Provider-komponenten. All data som behövs tilldelas till value-prop.

App.jsx

import React from "react";

import Context from "../context";

import ChildCompOne from "../ChildCompOne/ChildCompOne";
import ChildCompTwo from "../ChildCompTwo/ChildCompTwo";

const App = () => {
  // Define any data that you want to share across child components.
  const sharedData = "Some shared data";

  return (
    // Provide the shared data as a value to `Context.Provider`.
    <Context.Provider value={sharedData}>
      <ChildCompOne />
      <ChildCompTwo />
    </Context.Provider>
  );
};

export default App;

Steg 4: I barnkomponenterna (ChildCompOne eller ChildCompTwo) kan den delade datan nås med hjälp av hooken useContext. För att använda useContext måste det skapade Context från context.js-filen skickas som argument.

ChildCompOne.jsx

import React, { useContext } from "react";

// Import the `Context` object from "../context"
import Context from "../context";

const ChildComponentOne = () => {
  // Use the `useContext` hook to access data from the `Context`
  const data = useContext(Context);

  // You can now use the shared data in this component

  return <div>{data} in the first component</div>;
};

export default ChildComponentOne;

Fullständig appkod:

Obs

Ta dig tid att gå igenom varje steg, öppna varje fil och mapp, för att säkerställa att du tydligt förstår processen. Nästa kapitel fortsätter med ett exempel som kombinerar Context och hooks. Detta gör att du kan se hur dessa koncept fungerar tillsammans i praktiken.

1. Vad är det primära syftet med att använda Context?

2. Vilken funktion används för att skapa en ny Context?

3. Hur tillhandahåller du context-data till barnkomponenter?

question mark

Vad är det primära syftet med att använda Context?

Select the correct answer

question mark

Vilken funktion används för att skapa en ny Context?

Select the correct answer

question mark

Hur tillhandahåller du context-data till barnkomponenter?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 10
some-alt