当前位置:首页 > React

react 实现切换

2026-01-26 16:51:00React

切换状态的基本实现

在 React 中,切换状态通常通过 useState 钩子实现。定义一个布尔状态变量,并通过事件触发其值的变化。

import React, { useState } from 'react';

function ToggleComponent() {
  const [isOn, setIsOn] = useState(false);

  const handleToggle = () => {
    setIsOn(!isOn);
  };

  return (
    <div>
      <button onClick={handleToggle}>
        {isOn ? 'ON' : 'OFF'}
      </button>
    </div>
  );
}

切换类名或样式

通过状态动态切换元素的类名或内联样式,实现 UI 变化。

react 实现切换

function ToggleStyle() {
  const [isActive, setIsActive] = useState(false);

  return (
    <div>
      <button
        onClick={() => setIsActive(!isActive)}
        className={isActive ? 'active' : 'inactive'}
      >
        Toggle Style
      </button>
    </div>
  );
}

切换组件渲染

根据状态条件渲染不同的组件或内容。

function ToggleRender() {
  const [showContent, setShowContent] = useState(false);

  return (
    <div>
      <button onClick={() => setShowContent(!showContent)}>
        Toggle Content
      </button>
      {showContent && <div>Hidden Content Now Visible</div>}
    </div>
  );
}

切换多个选项

使用状态管理多个选项的切换,例如标签页或单选按钮组。

react 实现切换

function TabSwitcher() {
  const [activeTab, setActiveTab] = useState('tab1');

  return (
    <div>
      <button onClick={() => setActiveTab('tab1')}>Tab 1</button>
      <button onClick={() => setActiveTab('tab2')}>Tab 2</button>
      {activeTab === 'tab1' && <div>Content for Tab 1</div>}
      {activeTab === 'tab2' && <div>Content for Tab 2</div>}
    </div>
  );
}

切换动画效果

结合 CSS 或动画库(如 Framer Motion)实现平滑的切换效果。

import { motion, AnimatePresence } from 'framer-motion';

function ToggleAnimation() {
  const [isVisible, setIsVisible] = useState(false);

  return (
    <div>
      <button onClick={() => setIsVisible(!isVisible)}>
        Toggle Animation
      </button>
      <AnimatePresence>
        {isVisible && (
          <motion.div
            initial={{ opacity: 0 }}
            animate={{ opacity: 1 }}
            exit={{ opacity: 0 }}
          >
            Animated Content
          </motion.div>
        )}
      </AnimatePresence>
    </div>
  );
}

切换自定义 Hook

封装切换逻辑为可复用的自定义 Hook。

function useToggle(initialValue = false) {
  const [value, setValue] = useState(initialValue);
  const toggle = () => setValue(!value);
  return [value, toggle];
}

function CustomHookToggle() {
  const [isOn, toggleIsOn] = useToggle(false);

  return (
    <button onClick={toggleIsOn}>
      {isOn ? 'ON' : 'OFF'}
    </button>
  );
}

标签: react
分享给朋友:

相关文章

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impo…

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指的是在某些条件下阻止组件渲染或中断正在进行的渲染过程。以下是几种常见的方法: 条件渲染 通过条件判断决定是否渲染组件或部分内容。可以使用if语句或三元运…

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app np…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…