React实现简单的搜索跳转功能

一        实现效果

二        实现代码

2.1        Search.js

import React from "react";
import {useLocation, useNavigate} from "react-router-dom";

function Search(){
    const location=useLocation();
    const searchParams=new URLSearchParams(location.search);
    const input=searchParams.get("input");
    return(
        <div>
            <h1>{input}</h1>
        </div>
    )
}

export default  Search

2.2        Searchtwo.js

import React, { useState } from 'react';
import {Link, Outlet, useNavigate} from 'react-router-dom';
function Searchtwo() {
    const [invalue,setinvalue]=useState('');
    const navigate=useNavigate();
    function handChange(event){
        setinvalue(event.target.value)
    }
    function handNavigate(){
        let destination = "";
        switch(invalue) {
            case "登录中心":
                destination = "/login";
                break;
            case "首页中心":
                destination = "/home";
                break;
            case "社交中心":
                destination = "/social";
                break;
            case "我的藏品":
                destination = "/collection";
                break;
            case "账号管理"   :
                destination ="/my";
                break;
            default:
                destination = "/";
        }
        navigate(destination);
        setinvalue("");
    }
    const handKeyDown=(e)=>{
        if(e.key==='Enter'){
            handNavigate();
        }
    };
    return (
        <nav id="navbar">
            <ul>
                <li><Link to="/login">登录中心</Link></li>
                <li><Link to="/home">首页中心</Link></li>
                <li><Link to="/social">社交中心</Link></li>
                <li><Link to="/collection">我的藏品</Link></li>
                <li><Link to="/my">账号管理</Link></li>
                <li ><span className={"position"}>
                    <input type="search"  placeholder="搜索" value={invalue} onChange={handChange}
                           onKeyDown={handKeyDown} />
                    <span><button onClick={handNavigate}>搜索</button></span>
                </span></li>
            </ul>

            <Outlet></Outlet>
        </nav>
    )
}
export default Searchtwo

2.3        Collection.js

function Collection(){
    return(
        <h1>我的藏品页面</h1>
    )
}

export default Collection

2.4        Erji.js

function Erji(){
    return(
        <h1>抱歉,该功能未开放</h1>
    )
}

export default  Erji

2.5        Home.js

function Home(){
    return(
        <h1>首页中心页面</h1>
    )
}

export default  Home

2.6       index.js

import React from 'react'
import {Navigate} from "react-router-dom";
import ReactDom from 'react-dom';
import {BrowserRouter as Router, Link, Route, Routes} from "react-router-dom";
import Login from "./Login";
import Home from  "./Home";
import Social from  "./Social";
import  Collection from  "./Collection";
import  My from "./My";
import  Erji from "./Erji";
import Search from "./Search";
import Searchtwo from "./Searchtwo";
function App(){
    return(
        <Router>
            <Routes>
                <Route exact path="/" element={<Searchtwo/>}>
                    <Route path="/login" element={<Login/>}></Route>
                    <Route path="/home" element={<Home/>}></Route>
                    <Route path="/social" element={<Social/>}></Route>
                    <Route path="/collection" element={<Collection/>}></Route>
                    <Route path="/my" element={<My/>}></Route>
                    <Route path="/two" element={<Erji/>}></Route>
                    <Route path="/" element={<Navigate to={"/login"}/>}>登录</Route>
                    <Route path="/search" element={<Search/>}></Route>
                </Route>
            </Routes>
        </Router>
    )
}

ReactDom.render(<App/>,document.getElementById('root'))











2.7        Social.js

function Social(){
    return(
        <h1>社交中心页面</h1>
    )
}

export default  Social

2.8        Login.js

import {useNavigate} from "react-router-dom";
import React from "react";
function Login(){
    const navigate=useNavigate()
    function handLogin(){
        navigate("/home",{replace:true})
    }
    return(
        <div id="Log">
            <h1>
                <p>登录页面</p>
                姓名:<input type={'text'} name={'姓名'} placeholder={"姓名"} /><br/>
                密码:<input type={'password'} name={'密码'} placeholder={"密码"} /><br/>
                邮箱:<input type={'email'} name={'邮箱'} placeholder={"邮箱"}/><br/>
                <button onClick={handLogin}>登录</button>
                <button>重置</button>
            </h1>
        </div>
    )
}
export default Login











2.9        My.js

function My(){
    return(
        <h1>账号管理页面</h1>
    )
}

export default  My

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值