标签 router 下的文章

当然,首先这个是用PHP实现的。
然后呢,本质上是获取$_SERVER这个超全局变量,解析为key-value对,然后再对path进行解析 ,用到一个所谓UrlParser
最后根据解析出来的参数,返回对应的内容。

这里可以搞得很复杂。
比如说,你可以内部对URL进行redirect,而不是通过Nginx或者Apache。当然,你仍然需要设置Apache或者Nginx,把所有请求都转发到index.php,然后再把所有请求进行内部解析。

还比如说,你可以对解析URL之后的事做OOP,加一层controller,搞成MVC pattern。反正吧,要想搞的非常复杂,可以尽管搞。再加一个DAO层,再加一个Service层。加吧,一直往上加。

加着加着,你就发现你开始写PHP框架了。咦,我要干什么来着?哦,对了, 写电商啊。

首先,Next.js是个好学校,啊不,是个好框架;
其次,Next.js的文档也不算烂,但确实有点简陋,好多都是undocumented

Next.js有个feature叫做file-system routing:

By default, Next will serve each file in /pages under a pathname matching the filename (eg, /pages/some-file.js is served at site.com/some-file.

你可以设置一个option来turn it off:

// next.config.js
module.exports = {
  useFileSystemPublicRoutes: false,
}

我今天谈论的重点是这个问题:当我在Components/SomeComponenet.jsx里使用router(不论是useRouter还是withRouter),都会报错,错误信息这样的:

- 阅读剩余部分 -