1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/client/next.js
Arunoda Susiripala 65c4e1e5bd Init next.js even after dom is loaded. (#326)
Earlier we add a event to init next.js when dom has loaded.
But if at that time dom is already loaded, next.js won't get init ever.
Now we are using domready NPM module which handle these for us.
2016-12-02 22:59:10 +09:00

38 lines
1 KiB
JavaScript

import { createElement } from 'react'
import { render } from 'react-dom'
import HeadManager from './head-manager'
import domready from 'domready'
import { rehydrate } from '../lib/css'
import Router from '../lib/router'
import App from '../lib/app'
import evalScript, { requireModule } from '../lib/eval-script'
const {
__NEXT_DATA__: { component, errorComponent, props, ids, err }
} = window
domready(() => {
const Component = evalScript(component).default
const ErrorComponent = evalScript(errorComponent).default
const router = new Router(window.location.href, {
Component,
ErrorComponent,
ctx: { err }
})
// This it to support error handling in the dev time with hot code reload.
if (window.next) {
window.next.router = router
}
const headManager = new HeadManager()
const container = document.getElementById('__next')
const appProps = { Component, props, router, headManager }
rehydrate(ids)
render(createElement(App, appProps), container)
})
module.exports = requireModule