1. 手写按钮权限自定义指令
const userPermissions = ['edit', 'delete'];
export default {
mounted(el, binding) {
const needPerm = binding.value;
if (!userPermissions.includes(needPerm)) {
el.style.display = 'none';
}
}
};
import { createApp } from 'vue';
import App from './App.vue';
import permission from './directives/permission';
const app = createApp(App);
app.directive('permission', permission);
app.mount('#app');
<button v-permission="'edit'">编辑</button>
2. Vue3 SSR 核心注意点
- 无 window/document 对象,生命周期只执行到
setup;
- 数据预取:
useAsyncData/getServerSideProps;
- 避免状态单例:导出工厂函数,每次请求创建实例;
- 打包:客户端+服务端双 bundle,服务端渲染 HTML,客户端激活。