国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【前端知識】React 基礎(chǔ)鞏固(四十)——Navigate導(dǎo)航

這篇具有很好參考價值的文章主要介紹了【前端知識】React 基礎(chǔ)鞏固(四十)——Navigate導(dǎo)航。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

React 基礎(chǔ)鞏固(四十)——Navigate導(dǎo)航

一、Navigate的基本使用

  1. 新建Login頁面,在Login中引入Navigate,實現(xiàn)點擊登陸按鈕跳轉(zhuǎn)至/home路徑下:

    import React, { PureComponent } from "react";
    import { Navigate } from "react-router-dom";
    
    export class Login extends PureComponent {
      constructor(props) {
        super(props);
    
        this.state = {
          isLogin: false,
        };
      }
    
      login() {
        this.setState({
          isLogin: true,
        });
      }
    
      render() {
        const { isLogin } = this.state;
        return (
          <div>
            <h1>login page</h1>
            {!isLogin ? (
              <button onClick={(e) => this.login()}>登陸</button>
            ) : (
              <Navigate to="/home" />
            )}
          </div>
        );
      }
    }
    
    export default Login;
    
    
  2. 當(dāng)路由均無匹配時,通過Navigate跳轉(zhuǎn)至NotFound界面,其中*為通配符:

    構(gòu)建NotFound.jsx

    import React, { PureComponent } from 'react'
    
    export class NotFound extends PureComponent {
      render() {
        return (
          <div>
            <h1>Not Found Page</h1>
            <p>路徑不存在,請檢測之后再操作。</p>
          </div>
        )
      }
    }
    
    export default NotFound
    
    

    在App.jsx中配置NotFound:

    import React, { PureComponent } from "react";
    import { Route, Routes, NavLink, Navigate } from "react-router-dom";
    import "./style.css";
    import Home from "./pages/Home";
    import About from "./pages/About";
    import Login from "./pages/Login";
    import NotFound from "./pages/NotFound";
    
    export class App extends PureComponent {
      render() {
        return (
          <div className="app">
            <div className="header">
              <span>header</span>
              <div className="nav">
                <NavLink to="/home">首頁</NavLink>
                <NavLink to="/about">關(guān)于</NavLink>
                <NavLink to="/login">登陸</NavLink>
              </div>
              <hr />
            </div>
            <div className="content">
              {/* 映射關(guān)系: path => Component */}
    
              <Routes>
                <Route path="/" element={<Navigate to="/home" />} />
                <Route path="/home" element={<Home />} />
                <Route path="/about" element={<About />} />
                <Route path="/login" element={<Login />} />
                <Route path="*" element={<NotFound />} />
              </Routes>
            </div>
            <div className="footer">Footer</div>
          </div>
        );
      }
    }
    
    export default App;
    
    

二、路由嵌套和配置

  1. 構(gòu)建Home的子路由頁面:

    HomeRecommend.jsx

    import React, { PureComponent } from 'react'
    
    export class HomeRecommend extends PureComponent {
      render() {
        return (
          <div>
            <h2>Banner</h2>
            <h2>歌單列表</h2>
            <ul>
                <li>歌單1</li>
                <li>歌單2</li>
                <li>歌單3</li>
            </ul>
          </div>
        )
      }
    }
    
    export default HomeRecommend
    
    

    HomeRanking.jsx

    import React, { PureComponent } from 'react'
    
    export class HomeRanking extends PureComponent {
      render() {
        return (
          <div>
            <h2>Ranking Nav</h2>
            <h2>榜單數(shù)據(jù)</h2>
            <ul>
                <li>歌曲數(shù)據(jù)1</li>
                <li>歌曲數(shù)據(jù)2</li>
                <li>歌曲數(shù)據(jù)3</li>
                <li>歌曲數(shù)據(jù)4</li>
                <li>歌曲數(shù)據(jù)5</li>
            </ul>
          </div>
        )
      }
    }
    
    export default HomeRanking
    
    
  2. 利用Route嵌套子路由,實現(xiàn)Home頁面下的子路由切換:

    import React, { PureComponent } from "react";
    import { Route, Routes, NavLink, Navigate } from "react-router-dom";
    import "./style.css";
    import Home from "./pages/Home";
    import About from "./pages/About";
    import Login from "./pages/Login";
    import NotFound from "./pages/NotFound";
    import HomeRecommend from "./pages/HomeRecommend";
    import HomeRanking from "./pages/HomeRanking";
    
    export class App extends PureComponent {
      render() {
        return (
          <div className="app">
            <div className="header">
              <span>header</span>
              <div className="nav">
                <NavLink to="/home">首頁</NavLink>
                <NavLink to="/about">關(guān)于</NavLink>
                <NavLink to="/login">登陸</NavLink>
              </div>
              <hr />
            </div>
            <div className="content">
              {/* 映射關(guān)系: path => Component */}
    
              <Routes>
                <Route path="/" element={<Navigate to="/home" />} />
                <Route path="/home" element={<Home />} >
                  // 當(dāng)一開始進(jìn)入/home時,Home中的子頁面默認(rèn)展示recommend頁面
                  <Route path="/home" element={ <Navigate to="/home/recommend" />}/>
                  <Route path="/home/recommend" element={ <HomeRecommend/>}/>
                  <Route path="/home/ranking" element={ <HomeRanking/>}/>
                </Route>
                <Route path="/about" element={<About />} />
                <Route path="/login" element={<Login />} />
                <Route path="*" element={<NotFound />} />
              </Routes>
            </div>
            <div className="footer">Footer</div>
          </div>
        );
      }
    }
    
    export default App;
    
    
  3. 查看效果

    【前端知識】React 基礎(chǔ)鞏固(四十)——Navigate導(dǎo)航,前端知識,React,react.js,前端,前端框架

    【前端知識】React 基礎(chǔ)鞏固(四十)——Navigate導(dǎo)航,前端知識,React,react.js,前端,前端框架文章來源地址http://www.zghlxwxcb.cn/news/detail-622366.html

到了這里,關(guān)于【前端知識】React 基礎(chǔ)鞏固(四十)——Navigate導(dǎo)航的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【前端知識】React 基礎(chǔ)鞏固(四十四)——其他Hooks(useContext、useReducer、useCallback)

    在類組件開發(fā)時,我們通過 類名.contextType = MyContext 的方式,在類中獲取context,多個Context或者在函數(shù)式組件中通過 MyContext.Consumer 方式共享context: 可以看到,當(dāng)我們需要使用多個Context時,存在大量繁瑣的嵌套代碼;而Context Hook能夠讓我們通過Hook直接獲取某個Context的值,如

    2024年02月14日
    瀏覽(27)
  • 【前端知識】React 基礎(chǔ)鞏固(十三)——列表渲染

    在 React 中沒有像 Vue 模塊語法中的 v-for 指令,而是需要我們通過 JS 代碼的方式組織數(shù)據(jù),轉(zhuǎn)成 JSX 在 React 中,展示列表最多的方式就是使用數(shù)組的 map 高階函數(shù) 在展示數(shù)組前,有時會進(jìn)行一些處理 過濾一些內(nèi)容(filter 函數(shù)) 截取數(shù)組中的一部分內(nèi)容(slice 函數(shù)) 列表中的

    2024年02月10日
    瀏覽(31)
  • 【前端知識】React 基礎(chǔ)鞏固(二十三)——React 性能優(yōu)化 SCU相關(guān)

    React 的渲染流程 JSX - 虛擬 DOM - 真實 DOM React 的更新流程 props/state 改變 - render函數(shù)重新執(zhí)行 - 產(chǎn)生新的DOM樹 - 新舊DOM樹進(jìn)行diff - 計算出差異進(jìn)行更新 - 更新到真實的DOM React 在 props 或 state 發(fā)生改變時,會調(diào)用 React 的 render 方法,會創(chuàng)建一顆不同的樹 React 需要基于這兩顆不同的

    2024年02月15日
    瀏覽(39)
  • 【前端知識】React 基礎(chǔ)鞏固(二十八)——StrictMode

    【前端知識】React 基礎(chǔ)鞏固(二十八)——StrictMode

    StrictMode 是一個用來突出顯示應(yīng)用程序中潛在問題的工具 與 Fragment 一樣,StrictMode 不會渲染任何可見的 UI 為后代出發(fā)額外的檢測和警告 嚴(yán)格模式檢查僅在開發(fā)模式下運行,不影響生產(chǎn)構(gòu)建 嚴(yán)格模式檢查什么? 識別不安全的生命周期 使用過時的 ref API 檢查意外的副作用 組件

    2024年02月16日
    瀏覽(57)
  • 【前端知識】React 基礎(chǔ)鞏固(二十七)——Fragment

    【前端知識】React 基礎(chǔ)鞏固(二十七)——Fragment

    Fragment 允許將子列表分組,而無需向 DOM 添加額外節(jié)點 可以采用語法糖 / 來替代 Fragment,但在需要添加 key 的場景下不能使用此短語 查看Fragment應(yīng)用后的效果

    2024年02月16日
    瀏覽(28)
  • 【前端知識】React基礎(chǔ)鞏固(二)——JSX注意點

    createElement存在的問題: 繁瑣不簡潔 不直觀,無法一眼看出所描述的結(jié)構(gòu) 不優(yōu)雅,開發(fā)體驗不好 JSX 簡介:JSX 是 JavaScript XML 的簡寫,表示了在JS代碼中寫XML(HTML)格式的代碼 優(yōu)勢:聲明式語法更加直觀,與HTML結(jié)構(gòu)相同,降低學(xué)習(xí)成本,提高開發(fā)效率 JSX 是 react 的核心內(nèi)容‘

    2024年02月09日
    瀏覽(28)
  • 【前端知識】React 基礎(chǔ)鞏固(三十九)——React-Router的基本使用

    【前端知識】React 基礎(chǔ)鞏固(三十九)——React-Router的基本使用

    Router中包含了對路徑改變的監(jiān)聽,并且會將相應(yīng)的路徑傳遞給子組件。 Router包括兩個API: BrowserRouter使用history模式 HashRouter使用hash模式(路徑后面帶有#號) 嘗試在項目中使用HashRouter: 安裝Router 在 index.js 中引入并使用HashRouter Routes:包裹所有的Route,在其中匹配一個路由(

    2024年02月14日
    瀏覽(27)
  • 【前端知識】React 基礎(chǔ)鞏固(十九)——組件化開發(fā)(三)

    Main.jsx TabControl/index.jsx TabControl/style.css

    2024年02月13日
    瀏覽(28)
  • 【前端知識】React 基礎(chǔ)鞏固(七)——JSX 的基本語法

    JSX 是一種 JS 的語法擴展(extension),也可以稱之為 JavaScript XML,因為看起來就是一段 XML 語法 它用于描述我們的 UI 界面,并且其可以和 JS 融合在一起使用 它不同于 Vue 中的模塊語法,不需要專門學(xué)習(xí)模塊語法中的指令 React 認(rèn)為 渲染邏輯 本質(zhì)上與 其他UI邏輯 存在內(nèi)在耦合

    2024年02月10日
    瀏覽(68)
  • 【前端知識】React 基礎(chǔ)鞏固(二十六)——Portals 的使用

    【前端知識】React 基礎(chǔ)鞏固(二十六)——Portals 的使用

    通常,組件會渲染到 root 節(jié)點下??墒褂?Portals 將組件渲染至其他節(jié)點。 添加 id 為 more、modal 的 div 元素 構(gòu)建 Modal.jsx, 通過 createPortal 把組件渲染到指定的 modal 節(jié)點下 構(gòu)建 App.jsx 查看渲染結(jié)果

    2024年02月16日
    瀏覽(47)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包