【问题标题】:using React router with Next JS route使用带有 Next JS 路由的 React 路由器
【发布时间】:2018-05-01 12:36:45
【问题描述】:

我有一个简单的问题,我是 Next.JS 的新手 我们有一个项目,我的 Web 应用程序使用 Next JS 在后端管理路由

现在我的问题来了,我想在一个部分中使用 React-Router-dom

例如在我使用 Laravel 和 React 之前

在 Laravel 中我这样设置我的路线

 Route::get('/reactPage/*' ...)

然后使用带有 react 的客户端路由

但我不知道如何用 Next JS 处理这个问题

(更多详细信息=>例如,我希望用户在该用户看到其中包含某些链接的页面后单击某个链接,如果用户单击该链接,则 react-router-dom 处理路由并且没有任何请求发送到服务器)

【问题讨论】:

    标签: javascript reactjs next.js react-router-v4


    【解决方案1】:

    我建议使用 Next 路由器。您确实需要创建一个自定义服务器以重载默认的 Next 路由,但这是一项微不足道的任务:

    // server.js
    const { createServer } = require('http');
    const next = require('next');
    const routes = require('./routes');
    
    const port = parseInt(process.env.PORT, 10) || 3000;
    const dev = process.env.NODE_ENV !== 'production';
    const app = next({ dev });
    const handler = routes.getRequestHandler(app);
    
    app.prepare().then(() => {
        createServer(handler).listen(port, err => {
            if (err) {
                throw err;
            }
            console.log(`> Ready on http://localhost:${port}`);
        });
    });

    然后你就可以定义路由了,我在 routes.js 文件里做的:

    // routes.js
    const nextRoutes = require('next-routes');
    const routes = (module.exports = nextRoutes());
    
    routes
        .add('landing', '/')
        .add('profile', '/profile', 'profile');

    【讨论】:

    • 这两个文件究竟是在哪里创建的?
    猜你喜欢
    • 2019-02-07
    • 2017-12-14
    • 1970-01-01
    • 2021-01-23
    • 2019-02-05
    • 2021-11-04
    • 1970-01-01
    • 2022-06-11
    • 2018-02-24
    相关资源
    最近更新 更多