這是一個基於 Vue SSR Genesis 框架快速開發的模板例子javascript
# 安裝依賴
npm install
# 開發
npm run dev
# 編譯
npm run build
# 運行編譯後的程序
npm run start
複製代碼
這是一個爲 Followme 5.0誕生的Vue SSR框架,也許上線後咱們會開源,也許往後會🔥呢?html
<template>
<div class="app">
<h2>Vue SSR for Genesis</h2>
<ol class="list">
<li class="list-item">頁面標題:{{title}}</li>
<li class="list-item">服務名稱:{{name}}</li>
<li class="list-item">渲染地址:{{url}}</li>
<li class="list-item">官網網站:<a rel="noopener noreferrer" target="_blank" href="https://www.followme.com/">www.followme.com</a></li>
</ol>
</div>
</template>
<script lang="ts"> import Vue from 'vue'; import { Component, Prop } from 'vue-property-decorator'; @Component<App>({}) export default class App extends Vue { @Prop({ type: String, required: true }) public name!: string; @Prop({ type: String, required: true }) public title!: string; @Prop({ type: String, required: true }) public url!: string; } </script>
複製代碼
import App from './app.vue';
const data = window[process.env.GENESIS_NAME!];
export default new App({
propsData: {
name: data.name,
title: data.title,
url: data.url
}
});
複製代碼
import { GenesisTypes } from '@fmfe/genesis-core';
import App from './app.vue';
export default (ctx: GenesisTypes.RenderContext) => {
ctx.data.title = 'vue-genesis-templace';
return new App({
propsData: {
name: ctx.data.name,
title: ctx.data.title,
url: ctx.data.url
}
});
};
複製代碼
import { Genesis } from '@fmfe/genesis-core';
export const ssr = new Genesis({});
複製代碼
import { Build } from '@fmfe/genesis-compiler';
import { ssr } from './genesis';
const start = () => {
return new Build(ssr).start();
};
export default start();
複製代碼
import { DevServer } from '@fmfe/genesis-compiler';
import { ssr } from './genesis';
const start = () => {
return new DevServer(ssr).start();
};
export default start();
複製代碼
import express from 'express';
import { Renderer } from '@fmfe/genesis-core';
import { ssr } from './genesis';
const start = async () => {
const app = express();
const renderer = new Renderer(ssr);
app.use(renderer.staticPublicPath, express.static(renderer.staticDir, {
immutable: true,
maxAge: '31536000000'
}));
app.use(renderer.renderMiddleware);
app.listen(ssr.port, () => console.log(`http://localhost:${ssr.port}`));
};
start();
複製代碼
Followme 是一個極其複雜的大型網站,它幾乎遇到了前端所能遇到的全部問題,咱們計劃經過自研的 Genesis 框架來達到前端SSR微應用的目的,解決由於公共組件庫更新,致使全部的項目都須要發版本的問題,而且能夠作到真正的無刷新跳轉頁面前端
Genesis 你好!若是你也❤️😍,右轉傳送門 vue-genesis-templacevue