Egg-vue是一款基于Node.js與Egg.js的開發框架,同時結合了Vue.js的服務端渲染功能,讓我們在前后端開發中更加方便進行交互和處理。通過Egg.js的強大插件系統,我們可以方便地擴展自己所需的功能。
開發者可以通過egg-init命令快速初始化服務端和客戶端項目,egg-vue通過內部集成的webpack插件實現前端代碼的打包與服務端渲染,同時支持同構渲染,可以為SEO做出更好的貢獻。
以下是一個簡單的egg-vue的應用實例:
// app/controller/home.js const Controller = require('egg').Controller; class HomeController extends Controller { async index() { const { ctx, app } = this; const ssr = await ctx.renderView('home.js', { url: ctx.url }); await ctx.render('index.tpl', { ssr }); } } module.exports = HomeController;
// app/web/home.js import Vue from 'vue'; import App from './App.vue'; export default function createApp(context) { const app = new Vue({ render: h =>h(App, { props: { url: context.url } }) }); return { app }; };
我們可以將客戶端代碼與服務端代碼通過頁面入口進行關聯:
// app/view/index.tplegg-vue <%- ssr %>
通過簡單的配置我們就有了一個基于vue服務端渲染實現的項目,它具有更快的首屏渲染速度和更好的SEO效果,同時開發也更加靈活方便。
下一篇mvvm和vue