<template>
<view class="select">
:class="[{ 'active-ele': theme === item }]"
v-for="item in scheme"
:key="item"
@click="selectChange(item)"
>{{ item }}</view
</view>
</view>
</template>
<script>
import { mapMutations, mapGetters, mapState } from 'vuex'
export default {
computed: {
...mapGetters('theme', ['theme']),
...mapState('theme', ['theme', 'scheme'])
methods: {
...mapMutations('theme', ['updateTheme']),
selectChange(theme) {
this.updateTheme({ theme })
</script>
<style scoped lang="scss">
.select {
> view {
padding: 5px 15px;
border-radius: 10px;
display: inline-block;
cursor: pointer;
.active-ele {
background: $success-color;
color: $text-color-tab;
</style>
先看效果以上是两种主题方案进入实现方法和讲解原理: <view class="dark-bg" :style="{'--text-color': color}"> // 注意这里的 text-color <view class="h2">测试组件</view> <view> <select-theme></select-theme> </view> <view
<view :style="{ paddingTop: num + 'px' }"></view>
<view :style="{backgroundImage: 'url(' + imageURL + ')','background-repeat':'no-repeat',
已将前期写的uniapp主题转换弄成了一个项目,上传至uniapp组件库。可以根据以下api进行主题切换,此组件只适用于app端(因为浏览器环境就可以正常写了,不用这么麻烦)。
组件地址:添加链接描述
Theme 主题切换
主要使用scss与vuex支持uniapp主题切换
使用方法:
npm install
template调用示例:
:class="[vtheme,'content']"
scss调用示例:
.content {
@include base-backgro
1.添加webpack插件,新建文件webpack/themePlugin.js
const ThemeColorReplacer = require('webpack-theme-color-replacer')
const forElementUI = require('webpack-theme-color-replacer/forElementUI')
const config = require('../src/conf
Webpack加载器,将$b变量声明注入到处理后的文件中,并以当前BEM块的名称作为值。
当我们开发Web应用程序时,我们在文件系统上使用BEM。 有时,块变得太大而无法轻松处理,并且当您突然需要重命名块时,必须在每个文件中重写该名称。 为了使操作更容易一些,我们决定通过$b变量来统一SCSS文件中的块名称。
同时,它允许我们使用模板生成SCSS文件,而不必关心那里的选择器的正确名称。
在您的项目中安装加载程序:
npm install --save-dev @funboxteam/scss-vars-loader
将其添加到项目的Webpack配置中,以便在sass-loader之前调用它:
module . exports = {
// ...
module : {
rules
在UniApp中使用Element-UI的el-date-picker组件需要先引入Element-UI库。具体步骤如下:
1. 在项目根目录下的`uni.scss`文件中引入Element-UI的样式:
```scss
@import "~element-ui/packages/theme-chalk/src/index";
2. 在`main.js`文件中引入Element-UI的组件:
```javascript
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
3. 在你需要使用el-date-picker组件的页面中,使用以下代码来创建一个日期选择器:
```vue
<template>
<el-date-picker v-model="date" type="date" placeholder="请选择日期"/>
</view>
</template>
<script>
export default {
data() {
return {
date: ''
</script>
在上面的代码中,我们使用了v-model来双向绑定日期选择器的值,type属性设置为`date`代表只选择日期,placeholder属性设置占位文本。
4. 运行你的UniApp项目,你就可以在安卓设备上看到el-date-picker组件了。
问题产生的原因是因为UniApp是基于Vue开发的跨平台框架,而Element-UI是基于Vue开发的组件库,UniApp并不原生支持Element-UI的组件。因此,需要手动引入Element-UI的样式和组件,并进行相应的配置才能在UniApp中使用el-date-picker组件。
相关问题:
1. 如何在UniApp中使用其他Element-UI的组件?
2. UniApp支持哪些UI库?