tengmaoqing / vite-plugin-qiankun

保留vite es特性,快速接入乾坤微前端子应用
MIT License
459 stars 83 forks source link

有没有人遇到vite的vue3作为子项目在第二次进入时,直接把生命周期走完了 #55

Open Mrw15104 opened 1 year ago

Mrw15104 commented 1 year ago

image

sauron0914 commented 1 year ago

猜测你使用的应该是 react 18版本,给你一个我的解决方案

let root = ReactDOM.createRoot(document.getElementById('helium-root') as HTMLElement)

function render () {
  // @ts-ignore: _internalRoot为内部属性
  if (!root._internalRoot) {
    root = ReactDOM.createRoot(document.getElementById('helium-root') as HTMLElement)
  }
  root.render(
    <StrictMode>
      <GlobalContainer.Provider>
        <QueryClientProvider client={queryClient}>
          <RouterProvider router={router} fallbackElement={<Loading />} />
          <ReactQueryDevtools initialIsOpen={false} />
        </QueryClientProvider>
      </GlobalContainer.Provider>
    </StrictMode>,
  )
}

function renderSubApp () {
  renderWithQiankun({
    mount () {
      render()
    },
    bootstrap () {
      //
    },
    unmount () {
      root.unmount()
    },
    update () {
      //
    },
  })
}

renderSubApp()
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
  render()
}
ISL2012 commented 1 year ago

我也遇到过,请问您是怎么解决的呢, vite + vue3