当前位置:首页 > React

react如何取到当前页面的值

2026-01-26 04:11:47React

获取当前页面 URL 的值

在 React 中获取当前页面的 URL 可以使用 window.location 对象或 useLocation 钩子(React Router v5+)。以下是两种方法的具体实现:

方法一:使用 window.location

const currentUrl = window.location.href; // 完整 URL
const pathname = window.location.pathname; // 路径部分
const searchParams = new URLSearchParams(window.location.search); // 查询参数
const paramValue = searchParams.get('key'); // 获取特定参数值

方法二:使用 React Router 的 useLocation

import { useLocation } from 'react-router-dom';

function MyComponent() {
  const location = useLocation();
  const currentPath = location.pathname; // 当前路径
  const searchParams = new URLSearchParams(location.search); // 查询参数
  const paramValue = searchParams.get('key'); // 获取参数
  return <div>{currentPath}</div>;
}

获取页面 DOM 元素的值

若需获取页面中特定输入框或元素的值,可通过 useRef 或受控组件实现。

方法一:使用 useRef 获取输入值

import { useRef } from 'react';

function InputComponent() {
  const inputRef = useRef(null);

  const handleClick = () => {
    const value = inputRef.current.value; // 获取输入框的值
    console.log(value);
  };

  return (
    <div>
      <input ref={inputRef} type="text" />
      <button onClick={handleClick}>获取值</button>
    </div>
  );
}

方法二:受控组件(推荐)

import { useState } from 'react';

function ControlledInput() {
  const [inputValue, setInputValue] = useState('');

  const handleChange = (e) => {
    setInputValue(e.target.value); // 实时更新状态
  };

  return (
    <div>
      <input value={inputValue} onChange={handleChange} />
      <p>当前值: {inputValue}</p>
    </div>
  );
}

获取路由参数的值

若使用 React Router 传递动态路由参数(如 /user/:id),可通过 useParams 获取:

react如何取到当前页面的值

import { useParams } from 'react-router-dom';

function UserProfile() {
  const { id } = useParams(); // 获取路由参数
  return <div>用户ID: {id}</div>;
}

注意事项

  • SSR 兼容性:在服务端渲染(如 Next.js)中,window 对象不存在,需通过 useEffect 或条件渲染避免报错。
  • React Router 版本:v6 与 v5 的 API 略有差异,需根据项目版本调整代码。
  • 安全性:直接操作 window.location 或 DOM 时需注意 XSS 风险,建议优先使用受控组件或 React Router 提供的方法。

标签: 页面react
分享给朋友:

相关文章

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment 基本…

如何升级react native

如何升级react native

升级 React Native 的步骤 检查当前版本 运行以下命令查看当前项目的 React Native 版本: react-native --version 更新 React Native CL…

vue实现反馈页面

vue实现反馈页面

Vue 实现反馈页面的方法 表单组件设计 使用 Vue 的 v-model 实现表单数据双向绑定,创建包含输入框、下拉框和提交按钮的基础表单结构。表单字段通常包括用户姓名、联系方式、反馈类型和详细内容…

react如何上传图片

react如何上传图片

使用input标签上传图片 在React中可以通过HTML的<input type="file">元素实现图片上传功能。创建一个受控组件来管理文件选择状态: function Image…

react如何渲染图片

react如何渲染图片

在React中渲染图片的方法 使用<img>标签直接引入本地图片 将图片文件放入项目目录(如src/assets),通过相对路径引入。需注意Webpack可能需要配置file-loader…

react如何引用传递

react如何引用传递

引用传递的概念 在React中,引用传递(Ref Forwarding)是一种将ref属性自动传递给子组件的技术。这对于高阶组件(HOC)或封装第三方组件时非常有用,允许父组件直接访问子组件的DOM节…