美文网首页%……%vue大前端
前端-Vue实现换肤功能

前端-Vue实现换肤功能

作者: grain先森 | 来源:发表于2018-08-14 22:28 被阅读614次

业务需求:根据不同的"标识" 加载应用时 自动更换主题

需要的东西:vue-cli 全家桶 主要(vuex,vue-router),less ,webpack,两套同样目录结构的主题静态资源(css,图片)

最终效果

主题1:                              

主题2:

具体实现:

                一、把所需要改变主题的vue组件中的style全部提出来 按照目录结构 提取到static中,用less内联写法防止样式冲突。

            可以看到有001和002两个文件夹(两套主题),那就是可以随意改写样式less,每个主题还都有一个img文件夹,作为替换项目中的图片。

            二、现在项目中是没有样式的了,需要利用vue的一个混合功能mixin来实现,利用require去动态的给每个需要的组件渲染css和img

 1)利用接口和本地缓存先判断一下现在应该加载那一套主题。

2)然后写2个获取less和img的方法,temlates是vuex的一个state

3)在vue组件中,动态的获取

以上 开发环境就ok了,现在解决生产模式的问题:

        一、webpack run build以后 会把001,002的less打包成一个大的css,会造成样式冲突,我们要在webpack的webpack.prod.conf.js中设置一下,把extract改成false即可,会发现那个css文件从几百k,变成几十k,样式就不会冲突了。

        二、如果采用 通过url来获取标识的,会出现刷新和分享后,链接失效的问题,那么就还需要一步,利用vuerouter的守卫方法,每次切换页面的时候,把标识当做参数带上。

        三、当页面带有参数的时候,底部采用router-link-exact-active和router-link-active 都会出问题,

            exact无法精准匹配路由, routerlinkactive会重复出现因为,子页面的路由为"/"被匹配到了,解决方式为,修改子页面的默认页面为重定向。

至此已全部完成了

相关文章

  • 前端-Vue实现换肤功能

    业务需求:根据不同的"标识" 加载应用时 自动更换主题 需要的东西:vue-cli 全家桶 主要(vuex,vue...

  • 前端-Vue实现换肤功能

    业务需求:根据不同的"标识" 加载应用时 自动更换主题 需要的东西:vue-cli 全家桶 主要(vuex,vue...

  • Vue前端换肤

    本文采取 CSS自定义变量 实现 使用 document.body.style.setProperty('--bg...

  • Vue + Sass 实现简单的换肤功能

    前提概要 公司项目的一个需求,根据不同的域名,展示不同的主题,个人感觉这个功能很类似于网页的换肤功能。 大致想法是...

  • 前端vue项目实现单页打印功能

    前端vue项目实现单页打印功能 vue-print-nb插件:这是用于打印,简单,快速,方便,轻便的指令包装。安装...

  • VUE纯前端导出excel表格功能

    插件:使用vue-json-excel插件实现Vue纯前端导出简单的Excel表格功能。 使用方法 1. 安装依赖...

  • 再谈 Swift 换肤功能

    再谈 Swift 换肤功能 再谈 Swift 换肤功能

  • umi项目换肤功能的实现

    一个基于umi搭建的项目的换肤的实现 源码和demo 因为webpack和umi的层层封装,在线换肤功能实现变得复...

  • ios实现换肤功能

    最近接到了一个需求,需要实现一键换肤,由于入门尚浅,功力不够深厚,各位大佬勿喷。希望分享出来能让更多的大佬批评指...

  • 换肤框架Android-Skin-Support解析

    知识点汇总: 一:换肤框架Android-Skin-Support项目概述 二:实现换肤功能背景知识点学习 三:对...

网友评论

  • yemoumou:白日依山尽-简书朋友你好,我是币圈一老友,我的写作方向是区块链和数字货币,初到简书,望多多关照。互粉互赞,已赞,期待您的回赞哦。-餦
  • 月落乌啼霜满天_1f0f:引入less怎么弄的啊 我试了没成功
    月落乌啼霜满天_1f0f:@grain先森 我有个问题 就是怎么把请求到的数据 存入vuex 你这里有演示吗
    grain先森:你可以看看这篇文章
    https://www.cnblogs.com/zhuzhenwei918/p/6870340.html?utm_source=itdadao&;utm_medium=referral

本文标题:前端-Vue实现换肤功能

本文链接:https://www.haomeiwen.com/subject/nombbftx.html