전자 라우터 DOM이 여기 있습니다!
                                            
                                                
                                                
                                                
                                                
                                                
                                                 12495 단어  electrontypescriptreactjavascript
                    
특징
설치
터미널에서 다음을 실행합니다.
yarn add electron-router-dom
# OR
npm i electron-router-dom
라우터 DOM은 아직 설치하지 않았거나 패키지 관리자가 자동으로 처리하지 않는 경우 피어 종속성이므로 다음을 실행하십시오.
yarn add react-router-dom
# OR
npm i react-router-dom
용법
명심해야 할 주요 사항은
createFileRoute 및 createURLRoute 함수에서 사용되는 Electron Main Process와 <Router> 구성 요소 소품 이름의 Electron Renderer Process에서 동일한 창 ID를 사용해야 한다는 것입니다.전자 주요 공정
import {
  app,
  BrowserWindow,
  BrowserWindowConstructorOptions as WindowOptions,
} from 'electron'
import { createFileRoute, createURLRoute } from 'electron-router-dom'
import { join } from 'path'
function createWindow(id: string, options: WindowOptions = {}) {
  const window = new BrowserWindow({
    width: 700,
    height: 473,
    ...options,
  })
  const devServerURL = createURLRoute(process.env['ELECTRON_RENDERER_URL']!, id)
  const fileRoute = createFileRoute(
    join(__dirname, '../renderer/index.html'),
    id
  )
  process.env.NODE_ENV === 'development'
    ? window.loadURL(devServerURL)
    : window.loadFile(...fileRoute)
  return window
}
app.whenReady().then(() => {
  createWindow('main', {
    webPreferences: {
      preload: join(__dirname, '../preload/index.js'),
    },
  })
  createWindow('about', {
    width: 450,
    height: 350,
    show: false,
  })
})
전자 렌더러 프로세스
routes.tsx 파일을 생성합니다.import { Router, Route } from 'electron-router-dom'
import { MainScreen, AboutScreen, SearchScreen } from './screens'
export function AppRoutes() {
  return (
    <Router
      main={
        <>
          <Route path="/" element={<MainScreen />} />
          <Route path="/search" element={<SearchScreen />} />
        </>
      }
      about={<Route path="/" element={<AboutScreen />} />}
    />
  )
}
그런 다음
AppRoutes에서 index.tsx를 가져옵니다.import ReactDom from 'react-dom/client'
import React from 'react'
import { AppRoutes } from './routes'
ReactDom
  .createRoot(document.querySelector('app') as HTMLElement)
  .render(
    <React.StrictMode>
      <AppRoutes />
    </React.StrictMode>
  )
MainScreen 구성 요소의 간단한 예:
import { useNavigate } from 'react-router-dom'
// The "App" comes from the context bridge in preload/index.ts
const { App } = window
export function MainScreen() {
  const navigate = useNavigate()
  return (
    <main>
      <button onClick={() => navigate('/search')}>Go to Search screen</button>
      <button onClick={App.OpenAboutWindow}>Open About window</button>
    </main>
  )
}
이 라이브러리에 대한 자세한 정보를 얻으려면,
확인 Electron Router DOM GitHub Repository
감사합니다 💜
Reference
이 문제에 관하여(전자 라우터 DOM이 여기 있습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/daltonmenezes/electron-router-dom-is-here-12hd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)