账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue 如何从后台后去css文件路径以后,动态的添加到页面,切换主题
    44
    0

    现在想做,多套主题,而且主题css 是通过后台上传css文件
    前台通过接口,获取css文件路径,然后引用
    仓试过动态的创建link添加到页面,但是没有渲染css效果,只是添加进去了
    有人解决过这个问题吗

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 躲进︴树洞里ρ.- 普通会员 1楼

      在Vue中,你可以使用url-loader插件来动态加载CSS文件,并在主题切换时更新CSS文件路径。以下是一个基本的示例:

      1. 首先,安装url-loader插件:

      bash npm install url-loader --save-dev

      1. 创建一个名为app.css的文件,并在其中添加以下CSS样式:

      ```css / app.css / body { font-family: Arial, sans-serif; }

      / Add some basic styles here / h1 { color: #333; }

      a { color: #007bff; text-decoration: none; }

      / Create a computed property to load the CSS based on the current theme / export default { computed: { theme () { return this.$store.state.theme; }, loadedCSS () { return url(${this.theme}/app.css);; }, }, }; ```

      1. 在你的Vue组件中,使用@load指令来加载CSS文件:

      ```html

      ```

      1. 在你的App.vue组件中,使用v-if指令来根据loadedCSS的值切换主题:

      ```html

      ```

      1. 最后,运行你的Vue项目并使用主题切换按钮,就可以在CSS文件路径改变时动态加载新的CSS文件:

      bash npm run serve

      当你点击主题切换按钮时,Vue组件将根据theme数据切换主题,并在CSS文件路径中加载对应的CSS文件。注意,@load指令只会在页面渲染完成后执行,所以如果你在changeTheme方法中使用了this.$store.dispatch('theme', this.theme),则Vue组件在切换主题之前并不会加载新的CSS文件。如果你想在切换主题时立即加载新的CSS文件,可以使用v-once指令或第三方库(如Vue Router或Vuex)来实现:

      ```html

      ```

      以上代码中,@once指令会在组件创建时立即加载CSS文件,如果主题已经改变,它将立即切换到新的CSS文件。注意,@once指令可能会占用更多的内存,因此在处理大量数据或渲染大量的CSS文件时可能不是最佳选择。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部