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

277/300 React+react-router-dom+Vite 二級頁面刷新時,白屏問題解決

這篇具有很好參考價值的文章主要介紹了277/300 React+react-router-dom+Vite 二級頁面刷新時,白屏問題解決。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

(一)方案

BrowserRouter 換為 HashRouter文章來源地址http://www.zghlxwxcb.cn/news/detail-639973.html

(二)代碼

import routes from './routes'
import  {ReactElement, Suspense} from 'react'
import {createHashRouter, Navigate} from 'react-router-dom'
// 生成路由數(shù)據(jù)
const generateRoutes = (routes:  Routes) => {
    return routes.map((item: RouteParams) => {
        const {component: Component} = item;
        const route: RouteObject = {path: item.path}

        if (item.redirect) {
            route.element = <Navigate to={item.redirect} replace/>
        } else if (Component) {
            route.element = <BeforeEach meta={item.meta} path={item.path}>
                <Suspense>
                    <Component/>
                </Suspense>
            </BeforeEach>
        }

        if (item.children) {
            route.children = generateRoutes(item.children)
        }

        return route
    })
}
export default createHashRouter(
    generateRoutes(routes)
)

(三)更多代碼

import routes from './routes'
import  {ReactElement, Suspense} from 'react'
import {createHashRouter, Navigate} from 'react-router-dom'
// 生成路由數(shù)據(jù)
const generateRoutes = (routes:  Routes) => {
    return routes.map((item: RouteParams) => {
        const {component: Component} = item;
        const route: RouteObject = {path: item.path}

        if (item.redirect) {
            route.element = <Navigate to={item.redirect} replace/>
        } else if (Component) {
            route.element = <BeforeEach meta={item.meta} path={item.path}>
                <Suspense>
                    <Component/>
                </Suspense>
            </BeforeEach>
        }

        if (item.children) {
            route.children = generateRoutes(item.children)
        }

        return route
    })
}

// 路由攔截器
const BeforeEach = (props: { meta?: RouteMeta, children: ReactElement, path: String; }) => {
    const { userStore } = useStores()

    const { meta, children, path } = props

    // 未登錄
    if(meta){
        if(meta.isAuth && !userStore.isLogin || meta.userStatus && meta.userStatus !== userStore.info.status){
            return (
                <AutoReverse path={path} />
            )
        }
    }

    // 設(shè)置標(biāo)題
    if (meta?.title) {
        document.title = meta.title
    }

    document.body.style.backgroundColor = meta?.backgroundColor || '';

    return children
}

export default createHashRouter(
    generateRoutes(routes)
)

到了這里,關(guān)于277/300 React+react-router-dom+Vite 二級頁面刷新時,白屏問題解決的文章就介紹完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

  • 探索React Router:實現(xiàn)動態(tài)二級路由

    探索React Router:實現(xiàn)動態(tài)二級路由

    我有一個路由配置的二維數(shù)組,想根據(jù)這個數(shù)組結(jié)合路由組件來動態(tài)生成路由,應(yīng)該怎么樣實現(xiàn)。在 React Router 6 中渲染二級路由的方式跟 React Router 65相比有一些變化,但核心思路仍然是利用 Route 組件和路由嵌套的方式。下面是具體的步驟: 定義路由數(shù)組 注意,這里我們使用

    2024年04月25日
    瀏覽(26)
  • 【退役之重學(xué)前端】使用vite+vue3+vue-router,重構(gòu)react+react-router前后端分離的商城后臺管理系統(tǒng)

    前言: 對前端各個技術(shù)板塊,HTML、CSS、JavaScript、ES6、vue家族,整體上能“摸其大概”。筆者計劃重構(gòu)一個基于react的商城后臺管理系統(tǒng)。 —— 2024年2月16日 vue3 sass bootstrap ES7 前后端分離 分層架構(gòu) 模塊化開發(fā) npm vite git

    2024年02月20日
    瀏覽(25)
  • 【React Router】React Router學(xué)習(xí)筆記

    【React Router】React Router學(xué)習(xí)筆記

    React Router 是一個基于 React 之上的強大路由庫,它可以讓你向應(yīng)用中快速地添加視圖和數(shù)據(jù)流,同時保持頁面與 URL 間的同步。 React Router 知道如何為我們搭建嵌套的 UI,因此我們不用手動找出需要渲染哪些 Child 組件。 獲取URL參數(shù)。當(dāng)渲染組件時,React Router 會自動向 Route 組件

    2024年02月08日
    瀏覽(22)
  • React原理 - React Virtual DOM 原理

    React原理 - React Virtual DOM 原理

    目錄 擴展學(xué)習(xí)資料 ?Virtual DOM 是什么【虛擬dom】 React渲染 Virtual DOM VS 原生DOM【vDom是否比原生Dom更高效】 Virtual DOM數(shù)據(jù)結(jié)構(gòu) Virtaual DOM Diff【虛擬dom前后比對,更新不同dom的算法】 源碼解讀 react源碼組織方式: React Stack Reconciler【react 棧 協(xié)調(diào)】 react v15.6.2 源碼 練習(xí) 名稱 鏈接

    2024年02月11日
    瀏覽(22)
  • 【React】React-router路由

    路由是根據(jù)不同的url地址展示不同的內(nèi)容或頁面 注: 一個針對react設(shè)計的路由解決方案,可以友好的幫助解決React components到URL之間的同步映射關(guān)系 導(dǎo)入路由 注:路由模式有 HashRouter 和 BrowserRouter 兩種模式,其中BrowserRouter的路徑?jīng)]有#,樣式好看,真正朝后端發(fā)請求,后端若

    2023年04月17日
    瀏覽(34)
  • react---react router 5 基本使用

    react---react router 5 基本使用

    目錄 1.路由介紹 2.路由使用 3.路由組件和一般組件 4.Switch 單一匹配 5.解決二級路由樣式丟失的問題 6.路由精準(zhǔn)匹配和模糊匹配 7.Redirect路由重定向 1.路由介紹 路由是根據(jù)不同的 URL 地址展示不同的內(nèi)容或頁面,在 SPA 應(yīng)用中,大部分頁面結(jié)果不改變,只改變部分內(nèi)容的使用。

    2024年02月09日
    瀏覽(21)
  • 【React】react-router 路由詳解

    【React】react-router 路由詳解

    ?????? ??個人主頁: 阿選不出來 ?????? ??個人簡介: 一名大二在校生,學(xué)習(xí)方向前端,不定時更新自己學(xué)習(xí)道路上的一些筆記. ?????? ??目前開發(fā)的專欄: JS ??Vue??React?? ?????? 前端路由就是把不同路由對應(yīng)不同的內(nèi)容或頁面的任務(wù)交給前端來做,根據(jù)不同的url地

    2024年02月01日
    瀏覽(23)
  • 面試題-React(二):React中的虛擬DOM是什么?

    一、什么是虛擬DOM? 虛擬DOM是React的核心概念之一,它是一個輕量級的JavaScript對象樹,用于表示真實DOM的狀態(tài)。在React中,當(dāng)數(shù)據(jù)發(fā)生變化時,首先會在虛擬DOM上執(zhí)行DOM更新,而不是直接操作真實DOM。然后,通過比較前后兩個虛擬DOM的差異,最小化真實DOM的操作,從而減少頁

    2024年02月12日
    瀏覽(24)
  • React + 二級目錄 + Nginx配置

    背景: 由于子域名有限,我們需要將不同的前端項目進行二級目錄區(qū)分。 一、項目 現(xiàn)有三個項目: bsrm-web-manage bsrm-web-operator bsrm-web-testingorganization 二、期望訪問路徑 http://bsrm.life.com/bsrm-web-manage http://bsrm.life.com/bsrm-web-operator http://bsrm.life.com/bsrm-web-testingorganization 三、React 配

    2024年02月15日
    瀏覽(17)
  • 前端react入門day03-react獲取dom與組件通信

    前端react入門day03-react獲取dom與組件通信

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動力,如果看完對你有幫助,請留下您的足跡) 目錄 受控表單綁定? React中獲取DOM 組件通信 父傳子? 父傳子-基礎(chǔ)實現(xiàn) 父傳子-props說明 父傳子 - 特殊的prop children 子傳父? 使用狀態(tài)提升實現(xiàn)兄弟組件通信 使用Context機制跨

    2024年02月01日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包