补充:实际使用后发现,这个方式会直接在浏览器暴露所有源代码。咋解决呢?
JS代码
const logo = {
template: `
<div class="layout-logo" v-if="setShowLogo" @click="onThemeConfigChange">
<img src="https://gitee.com/lyt-top/vue-next-admin-images/raw/master/vue2/logo-mini.svg" class="layout-logo-medium-img" />
<span>{{ getThemeConfig.globalTitle }}</span>
</div>
<div class="layout-logo-size" v-else @click="onThemeConfigChange">
<img src="https://gitee.com/lyt-top/vue-next-admin-images/raw/master/vue2/logo-mini.svg" class="layout-logo-size-img" />
</div>
`,
name: 'layoutLogo',
computed: {
// 获取布局配置信息
getThemeConfig() {
//return this.$store.state.themeConfig.themeConfig;
},
// 设置 logo 是否显示
setShowLogo() {
//let { isCollapse, layout } = this.$store.state.themeConfig.themeConfig;
//return !isCollapse || layout === 'classic' || document.body.clientWidth < 1000;
},
},
methods: {
// logo 点击实现菜单展开/收起
onThemeConfigChange() {
if (this.$store.state.themeConfig.themeConfig.layout === 'transverse') return false;
this.$store.state.themeConfig.themeConfig.isCollapse = !this.$store.state.themeConfig.themeConfig.isCollapse;
},
}
}
export default logo
HTML
<script type="module" lang="ts">
import Logo from "/statics/js/layout/logo/index.js"
const App = {
components: {
Logo
},
beforeMount() {
app.component('Logo', Logo);
},
};
const app = Vue.createApp(App);
app.use(ElementPlus);
app.mount("#app");
</script>