当前位置:首页 > React

react如何定义数据

2026-03-31 11:02:07React

定义组件内部状态(State)

使用 useState Hook 创建组件内部状态。适用于需要在组件内部维护和更新的数据。

import React, { useState } from 'react';

function ExampleComponent() {
  const [count, setCount] = useState(0); // 初始值为0
  return (
    <button onClick={() => setCount(count + 1)}>Clicked {count} times</button>
  );
}

定义组件属性(Props)

通过父组件传递数据到子组件,子组件通过 props 接收。适用于父子组件间的数据传递。

function ChildComponent(props) {
  return <div>{props.message}</div>;
}

function ParentComponent() {
  return <ChildComponent message="Hello from parent!" />;
}

使用Context跨组件共享数据

通过 createContextuseContext 实现跨层级组件数据共享。

import React, { createContext, useContext } from 'react';

const DataContext = createContext();

function Parent() {
  return (
    <DataContext.Provider value={{ key: "Shared Data" }}>
      <Child />
    </DataContext.Provider>
  );
}

function Child() {
  const data = useContext(DataContext);
  return <div>{data.key}</div>;
}

使用Ref存储可变值

通过 useRef 存储不需要触发渲染的可变值(如DOM引用或定时器ID)。

import React, { useRef } from 'react';

function RefExample() {
  const inputRef = useRef(null);
  const focusInput = () => inputRef.current.focus();

  return (
    <>
      <input ref={inputRef} />
      <button onClick={focusInput}>Focus Input</button>
    </>
  );
}

全局状态管理(Redux/Zustand)

通过第三方库(如Redux或Zustand)管理跨组件的全局状态。
Redux示例:

import { createStore } from 'redux';
import { Provider, useSelector, useDispatch } from 'react-redux';

const store = createStore((state = { value: 0 }, action) => {
  if (action.type === 'increment') return { value: state.value + 1 };
  return state;
});

function Counter() {
  const value = useSelector(state => state.value);
  const dispatch = useDispatch();
  return <button onClick={() => dispatch({ type: 'increment' })}>{value}</button>;
}

function App() {
  return (
    <Provider store={store}>
      <Counter />
    </Provider>
  );
}

数据持久化(LocalStorage/SessionStorage)

结合 useEffect 和浏览器存储API实现数据持久化。

react如何定义数据

import { useState, useEffect } from 'react';

function PersistentCounter() {
  const [count, setCount] = useState(
    () => parseInt(localStorage.getItem('count')) || 0
  );

  useEffect(() => {
    localStorage.setItem('count', count);
  }, [count]);

  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

标签: 定义数据
分享给朋友:

相关文章

vue实现数据拖动

vue实现数据拖动

Vue 实现数据拖动 在 Vue 中实现数据拖动通常涉及 HTML5 的拖放 API 或第三方库(如 vuedraggable)。以下是两种常见方法: 使用 HTML5 拖放 API 设置拖拽元素…

uniapp 数据

uniapp 数据

uniapp 数据管理方法 本地存储 使用 uni.setStorageSync 和 uni.getStorageSync 进行本地数据持久化存储。适合保存用户偏好设置或小型数据。 // 存储数…

Vue数据依赖实现

Vue数据依赖实现

Vue数据依赖实现原理 Vue的数据依赖实现基于响应式系统,核心是通过Object.defineProperty或Proxy拦截数据变化,结合发布-订阅模式实现依赖收集和更新触发。 核心机制 依赖收…

vue实现数据删除

vue实现数据删除

Vue 实现数据删除的方法 在 Vue 中删除数据通常涉及操作数组或对象,并结合响应式更新。以下是几种常见实现方式: 从数组中删除数据 使用 splice 方法删除数组中的指定项: methods…

vue实现数据添加

vue实现数据添加

在 Vue 中实现数据添加 Vue 提供了多种方式来实现数据的添加操作,可以通过组件的数据绑定、表单处理以及状态管理等方式完成。以下是几种常见的实现方法: 使用 v-model 绑定表单数据 通过…

vue如何实现数据

vue如何实现数据

Vue 数据实现方式 Vue 提供了多种方式实现数据管理和响应式更新,核心机制基于响应式系统和状态管理方案。 响应式数据声明 在组件选项中使用 data 函数返回对象,Vue 会自动递归转换属性为响…