Hello About Blog Projects Bookmarks Ideas
2021-11-20
最近想到这样的一种开发方式(当然是未试验的):插件式开发。
插件式应用在很多地方,最常见的就是 Bundler,如 Vite,webpack 等,Node 中间件貌似也是这个道理。
但我想到的是应用在 UI 层。
假设这种开发方式的目录是这个样子
src/
-- plugins/
-- App.vue
-- main.js
index.html
在模板文件 App.vue
中预设好所需要的锚点
<template>
<App:header />
<App:body />
<App:footer />
</template>
大多数时候 App.vue
就是一个展现路由视图的地方,并无过多其他用处,所以通过插件将 <RouterView />
挂载到 <App:body />
即可
// plugins/registerRouterView.js
import { RouterView } from 'vue-router'
export function apply(api) {
api.registerPosition('App:body', RouterView, {/* ... */})
}
注册一个 Home 路由
// plugins/HomePage.js
import Home from '../components/Home.vue'
export function apply(api) {
api.registerRoute('/', Home, {/* ... */})
}