了解 React Redux 和 React Native Elements

发布: (2025年11月30日 GMT+8 11:57)
4 分钟阅读
原文: Dev.to

介绍

在 React Native 应用开发中,常常会出现以下需求:

  • 管理在多个组件中使用的全局数据。
  • 拥有整洁、一致且快速构建的界面布局。

为此,两个常用的库是 React ReduxReact Native Elements。本章节将介绍这两个库的基本概念以及实现示例。

React Redux

React Redux 是用于在 React 和 React Native 应用中管理全局 state 的库。Redux 帮助组织许多组件需要的数据,而无需通过层层传递 props。

Redux 中最重要的概念

  • Store – 用来存放整个应用全局 state 的地方。整个应用只有一个主 store。

  • Action – 一个 JavaScript 对象,用来告诉 Redux 想要执行哪种类型的更改。Action 包含 type 属性,还可以包含 payload

    { "type": "ADD_ITEM", "payload": "Apel" }
  • Reducer – 根据 action 决定 state 如何变化的函数。Reducer 必须是 pure function

    function cartReducer(state = [], action) {
      switch (action.type) {
        case "ADD_ITEM":
          return [...state, action.payload];
        default:
          return state;
      }
    }
  • dispatch – 用来向 store 发送 action 的函数。

    dispatch({ type: "ADD_ITEM", payload: "Apel" });
  • useSelector – 用来从 store 中读取数据的 Hook。

    const items = useSelector(state => state.cart);

Redux 在组件众多且需要在整个应用中保持数据一致性的场景中非常有用。

React Native Elements

React Native Elements 是一个 UI 库,提供了大量开箱即用的 React Native 组件。

主要优势

  • 提供了诸如 ButtonCardInputIconHeaderAvatarListItem 等众多组件。
  • 所有组件都有默认样式,使界面更加统一、专业,无需从头编写样式。
  • 虽然自带样式,但每个组件仍然可以通过 propsstyletheme 进行自定义。

简单示例

import { Button } from "@rneui/themed";

React Native Elements 能节省开发时间,让界面更现代,而不需要大量手动样式。

在 React Native 中集成 React Redux

安装

npm install @reduxjs/toolkit react-redux

建议使用 Redux Toolkit,因为它能让代码结构更简洁。

创建 Store(例如 redux/store.js

import { configureStore } from "@reduxjs/toolkit";
import cartReducer from "./cartSlice";

export const store = configureStore({
  reducer: {
    cart: cartReducer
  }
});

App.js 中添加 Provider

import { Provider } from "react-redux";
import { store } from "./redux/store";

export default function App() {
  return (
    <Provider store={store}>
      {/* 其他应用组件 */}
    </Provider>
  );
}

Provider 确保应用中的所有组件都能访问 Redux state

读取 State

import { useSelector } from "react-redux";

const items = useSelector((state) => state.cart.items);

修改 State

import { useDispatch } from "react-redux";
import { addItem } from "../redux/cartSlice";

const dispatch = useDispatch();
dispatch(addItem("Jeruk"));

通过这种集成,React Redux 让全局 state 更加稳定、易于管理。

在应用中使用 React Native Elements 的示例

安装

npm install @rneui/themed @rneui/base

ProductCard.jsx

import { Card, Button, Text } from "@rneui/themed";

export default function ProductCard({ nama, harga }) {
  return (
    <Card>
      <Card.Title>{nama}</Card.Title>
      <Text>Harga: Rp {harga.toLocaleString()}</Text>
      <Button title="Beli" />
    </Card>
  );
}

Home.jsx

import { View } from "react-native";
import ProductCard from "./ProductCard";

export default function Home() {
  return (
    <View>
      <ProductCard nama="Produk A" harga={15000} />
      <ProductCard nama="Produk B" harga={25000} />
    </View>
  );
}

使用 React Native Elements,界面即使代码中几乎没有样式也能保持整洁。

结论

在 React Native 开发中,掌握全局 state 管理和构建一致 UI 的方法非常关键。React Redux 解决了复杂 state 的问题,而 React Native Elements 加速了界面搭建。熟练掌握这两者,学生们就能打造更稳定、结构化且专业的应用。

Back to Blog

相关文章

阅读更多 »

第1276天:职业攀升

星期六 在前往车站之前,我在当前的副项目上写了一些代码。取得了相当不错的进展,然后该出发了。Made i...

无状态 AI 应用背后的架构

项目一开始就做了一个看似冒险的决定:不使用后端数据库。当时并不需要持久化用户数据——获取用户的响应就是……

失去信心

请提供您希望翻译的文章摘录或摘要文本,我才能为您进行简体中文翻译。