1

我创建了一个项目,所有页面和数据都是后端呈现的。现在我的客户想使用 vue js 集成一个 SPA 功能,但只针对特定页面而不是所有页面,例如,如果我有 home 、 contact 、 about us 然后是 blog ,它在我要应用 SPA 的博客上使用Vue.js 顺便说一句,我使用 keystone js 作为后端框架。

现在的问题是我是否需要搭建一个 vue js 项目,该项目将是博客,然后将其集成到我现有的?那是理想的吗?或者我只是要将 vue js 内联到特定页面?那可能吗?

我需要搭建一个新的 vue js 应用程序然后集成它吗?我将如何启动 vue js 应用程序?通过导航?因为我的应用程序的 SPA 仅在特定页面上,因此例如,如果我导航到作为 spa 的博客,它将启动 vue js spa 应用程序?那正确吗 ?或者我只是要将 vue js 应用程序内联到页面?

这样做的最佳方法是什么?任何想法?

我的后端渲染页面示例

exports = module.exports = function (req, res) {

    var view = new keystone.View(req, res);
    var locals = res.locals;

    // Set locals
    locals.section = 'blog';
    locals.filters = {
        post: req.params.post,
    };
    locals.data = {
        posts: [],
    };

    // Load the current post
    view.on('init', function (next) {

        var q = keystone.list('Post').model.findOne({
            state: 'published',
            slug: locals.filters.post,
        }).populate('author categories');

        q.exec(function (err, result) {
            locals.data.post = result;
            next(err);
        });

    });

    // Load other posts
    view.on('init', function (next) {

        var q = keystone.list('Post').model.find().where('state', 'published').sort('-publishedDate').populate('author').limit('4');

        q.exec(function (err, results) {
            locals.data.posts = results;
            next(err);
        });

    });

    // Render the view
    view.render('post');
};
4

0 回答 0