-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
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
Nextjs #42
Comments
Learn
路由系统
组件
后端渲染
getInitialProps统一了SSR调用接口的规范。
CSSCSS开发方式也变了
style-jsxCSS组件化隔离 部署?还不会 静态导出
懒加载模块
懒加载组件兼容性 |
自定义Babel配置
|
一、页面路由next路由系统整体两方面:
Issues
二、next/linkLink组件管理前端页面切换?是API方式的语法糖?
会预加载?点击的时候再加载把?
好像没这么简单。动态路由时,href的用处呢?路由参数取值是从as指定的URL里取的
Issues:
为啥? 三、next/router模块管理页面切换 APIevents对象 & Router事件
** 注意:** 回调函数的参数url是表示展示在浏览器里的URL(即用户看到的URL)。 事件绑定事件的节点
整个都是客户端路由体系,理应只在客户端才进行Router的操作。 浏览器popState监听next为了正常处理单页应用的页面切换,监听posState事件。
测试发现只是没有发生页面切换,但是浏览器URL还是改成目标的url了。 Shadow Routing改变URL但不用执行页面的
即页面A里跳转页面A,并且只有当跳转当前页面时shadow routing才有效。 场景呢?
除了不执行
useRouter hook
两个对象不是一样的
区别在哪里?为啥存在这些差别? withRouter通过
什么情况下不适合使用
'next/router'模块默认导出和Router对象一般直接把'next/router'模块默认导出命名为
const CustomLink = withRouter(({children, href, router}) => {
var routerGotByHook = useRouter();
console.log(`keys in Router: ${Object.keys(Router)}`)
console.log(`keys in router got by useRouter: ${Object.keys(routerGotByHook)}`)
console.log(`keys in router got by withRouter: ${Object.keys(router)}`)
console.log(`routerGotByHook === router -> ${routerGotByHook === router}`)
console.log(`routerGotByHook === Router -> ${routerGotByHook === Router}`)
console.log(`router === Router -> ${router === Router}`)
return (
<a href={href} onClick={onClickHandler(href)}>
{children}
<style jsx>{`
a {
margin-right: 10px;
}
`}</style>
</a>
)
}) Router对象API:
有些方法和'next/router'的导出模块一样的。 Issues
为何?
为何
怎么个'unexpected behavior.' ? |
Dynamic Routing 动态路由匹配版本:Next.js 9 or newer. ? a.k.a. url slugs, pretty urls, et al 预定义的路由(即静态路由)
动态路由即路径参数(named URL parameters)规则见引入背景:
Issues ?
缺点:
参考 |
PK 公司老框架对比下公司老框架SAP来看next
|
API 路由pages目录下除了可以放置页面外还可以定义接口,2个约定:
路由匹配
处理函数
接口配置?
Issues
|
自定义Web服务 & 路由匹配一、next模块1. next函数
2. app对象1. render方法渲染指定的页面,中间件函数。
2. renderToHTML
渲染指定页面,返回页面HTML字符串。 3. getRequestHandler获取nextjs默认的路由匹配函数 二、Issues
三、自定义路由匹配自定义路由是建立在自定义web服务之上的。 四、SSR缓存4.1 场景
4.2 缓存媒介
五、web服务框架引用fastify,得研究研究
|
一、自定义配置1. nextjs也是高度可配置的,并且nextjs本身是基于webpack, babel构建的,所以nextjs的配置主要分为三类:
2. 配置数据除了在构建过程中使用外,Nextjs应用(Server,Client)也可以获取到配置数据。1.2 next.config.js配置文件配置文件约定项目根目录的
1.3 pageExtensionsjs文件里也可以写jsx,为啥还需要jsx后缀的文件? 1.4 generateBuildId为啥要自定义buildID(默认实现方案【怎么实现的?】无法支持多服务build时统一的buildId ?) 二、webpack配置
三、babel配置四、使用配置4.1. nextjs build过程中使用4.2. 应用程序使用(Server,Client)1. 在构建阶段读取配置利用
2. 运行时读取配置
注意事项:
Issues/Concern:
存在SSR时才报,客户端路由不报。 SSR和CSR渲染的内容不一致,应该是FOFT问题 貌似是ReactDOM报的。FOUC: Warning: Text content did not match. Server: "...css..." 关于FOUC的文章也很多啊 |
Nextjs是什么?
Docs
Page
这个概念构建。React脚手架
create-react-app
umi
next
The text was updated successfully, but these errors were encountered: