We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pages
src
static
location.href
'/:path+.json'
.next\bundles\pages
next做了什么?
client是如何引入?
lib\document.js
server\render.js
client做了什么?
window.__NEXT_DATA__
lib/router
window.location.href
__next
lib做了什么?
next的webpack做了什么?
packages\next-server\server\next-server.ts
generateRoutes
packages\next\pages\_document.tsx
getPreloadMainLinks
packages\next\client\page-loader.js
window.__NEXT_P.push
packages\next\build\webpack\loaders\next-client-pages-loader.ts
window.__NEXT_P.push = register
pageRegisterEvents
The text was updated successfully, but these errors were encountered:
No branches or pull requests
整体总结
pages
文件夹目录:[RFC]src
directory vercel/next.js#8451pages
,static
文件夹都是固定的v1.0.0 总结
location.href
改变,App的componentWillReceiveProps监听到,调用router执行所有侦听者'/:path+.json'
, 加载.next\bundles\pages
目录下面对应的文件字符串问答
next做了什么?
client是如何引入?
lib\document.js
模板里面引入server\render.js
里引入document.js模板,并且使用createElement填充client做了什么?
window.__NEXT_DATA__
全局变量中获取app和component组件lib/router
组件,通过window.location.href
加载对应的组件__next
id的dom,然后插入router返回的组件lib做了什么?
__next
为id的dom,里面可以插入一段htmlnext的webpack做了什么?
v9.0.0总结
next-server
packages\next-server\server\next-server.ts
的generateRoutes
方法,匹配路由,通过render生成html字符串返回next
packages\next\pages\_document.tsx
里面的比如:getPreloadMainLinks
packages\next\client\page-loader.js
的loadPage方法。还会有一个自己的pageCache页面缓存。加载完成后使用下面的方法执行js代码。window.__NEXT_P.push
函数:packages\next\build\webpack\loaders\next-client-pages-loader.ts
window.__NEXT_P.push
方法被重写了window.__NEXT_P.push = register
,也就是说调用push的时候,其实就完成了异步加载页面的注册和执行pageRegisterEvents
事件模型,触发页面刷新The text was updated successfully, but these errors were encountered: