@umajs/plugin-vue-ssr
针对Umajs提供vue3.0服务端渲染模式的插件,插件基于服务端渲染骨架工具@Srejs/vue3开发。
插件介绍
plugin-vue3-ssr
插件扩展了Umajs
中提供的统一返回处理Result
对象,新增了vue
页面组件渲染方法,可在controller
自由调用,使用类似传统模板引擎;也同时将方法挂载到了koa中间件中的ctx
对象上;当一些公关的页面组件,比如404、异常提示页面、登录或者需要在中间件中拦截跳转时可以在middleware
中调用。
插件安装
yarn add @umajs/plugin-vue3-ssr --save
插件配置
export default <{ [key: string]: TPluginConfig }>{
vue3: {
enable:true,
options:{
rootDir:'web',
rootNode:'app',
ssr: true,
cache: false,
prefixCDN: '/'
}
}
};
目录结构
框架默认配置属性rootDir
默认为根目录下web
,pages下是页面组件入口,比如list
页面,vue主入口文件为list/index.js
,页面组件为list/App.vue
└── web
└── pages
└── list
├── App.vue
├── index.js
页面组件(App.vue)
<template>
<h1>{{title}}</h1>
<p>{{msg}}</p>
</template>
<script>
export default {
props:['title']
name: 'app',
setup(){
return {
msg:'hi vue3.0',
}
}
},
}
</script>
页面主入口文件(index.js)
import App from './App.vue';
export default {
App,
Router,
Store,
};
Pages
下按照文件夹名称定义vue页面组件,每一个页面组件必须包含inde.js
主入口文件,文件必须导出组件App
。如果使用vue-router
,则将路由配置导出为Router
对象;当使用vuex
时,则将初始化配置导出为Store
。
插件使用
import { BaseController, Path } from '@umajs/core';
import { Result } from '../plugins/vue-ssr';
export default class Index extends BaseController {
@Path('/')
index() {
return Result.vue('index', { title: 'umajs-vue-ssr'});
}
}
案例