国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uni-app+vue3微信小程序切換主題皮膚

這篇具有很好參考價值的文章主要介紹了uni-app+vue3微信小程序切換主題皮膚。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

思路來源: https://blog.csdn.net/qq_42611074/article/details/128236458文章來源地址http://www.zghlxwxcb.cn/news/detail-517238.html

  1. 引用store做全局css變量替換;
  • store.js
import { createStore } from 'vuex'

const store = createStore({
  state: {
    // default-theme dark-theme
    themeName: 'default-theme',
    themeStyle: {
      'default-theme': `
        --solar-color1: #ff5000;
        --solar-color2: #000000;
        --solar-color3: #b1b1b1;
        --solar-color4: rgba(0, 0, 0, 0.1);
        --solar-back-color1: linear-gradient(270deg, #ff8800 0%, #ff5000 100%);
        --solar-back-color2: rgba(255, 255, 255, 0.9);
        --solar-back-color3: linear-gradient(101deg, #ffffff 0%, #f2f1f6 100%);
        --solar-back-color4: #ffffff;
		`,
      'dark-theme': `
	    --solar-color1: #000000;
        --solar-color2: #000000;
        --solar-color3: #000000;
        --solar-color4: #000000;
        --solar-back-color1: #000000;
        --solar-back-color2: #000000;
        --solar-back-color3: #000000;
        --solar-back-color4: #ffffff;
		  `
    }
  },
  getters: {
    theme(state) {
      return state.themeStyle[state.themeName]
    }
  },
  mutations: {
    setTheme(state, themeName = 'default-theme') {
      state.themeName = themeName
    }
  }
})

export default store
  1. 添加全局的監(jiān)聽函數(shù)
  • common/themeMixin.js
import { mapState, mapGetters } from 'vuex'

export default {
  install(Vue) {
    Vue.mixin({
      computed: {
        ...mapState({
          themeName: 'themeName'
        }),
        ...mapGetters({
          theme: 'theme'
        })
      }
    })
  }
}
  • main.js
import store from '@/store/index'
import themeMixin from '@/common/themeMixin.js'

import { createSSRApp } from 'vue'
const app = createSSRApp(App)
app.use(store)
app.use(themeMixin)
  1. 給要切換的頁面加上css變量
  • login.vue
<template>
  <view class="container" :style="theme">
      <view class="btn">
         <button
         class="btn-primary"
         @click="handleSwitch"
         >切換</button>
      </view>
  </view>
</template>

<script setup>
import { useStore } from 'vuex'
const store = useStore()

function handleSwitch() {
  store.commit('setTheme', 'dark-theme')
}
</script>

<style lang="scss" scoped>
.container {
  width: 100vw;
  min-height: 100vh;
  position: relative;
  background: var(--solar-back-color2);
  backdrop-filter: blur(23px);
}
.btn-primary {
  cursor: pointer;
  width: 670rpx;
  height: 96rpx;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 32rpx;
  font-weight: 400;
  color: #fff;
  background: linear-gradient(
    270deg,
    #ff8800 0%,
    #ff5000 100%
  );
  border-radius: 24rpx;
  box-sizing: border-box;
}
</style>

升級版

  1. 在base.css寫好主題配色;
.default-theme {
  --solar-color1: #ff5000;
  --solar-color2: #000000;
  --solar-color3: #b1b1b1;
  --solar-color4: rgba(0, 0, 0, 0.1);
  --solar-back-color1: linear-gradient(270deg, #ff8800 0%, #ff5000 100%);
  --solar-back-color2: rgba(255, 255, 255, 0.9);
  --solar-back-color3: linear-gradient(101deg, #ffffff 0%, #f2f1f6 100%);
  --solar-back-color4: #ffffff;
}

.dark-theme {
  --solar-color1: #000000;
  --solar-color2: #000000;
  --solar-color3: #000000;
  --solar-color4: #000000;
  --solar-back-color1: #000000;
  --solar-back-color2: #000000;
  --solar-back-color3: #000000;
  --solar-back-color4: #ffffff;
}
  1. 引用store做全局css變量替換;
  • store.js
import { createStore } from 'vuex'

const store = createStore({
  state: {
    // default-theme dark-theme
    themeName: 'default-theme'
  },
  mutations: {
    setTheme(state, themeName = 'default-theme') {
      state.themeName = themeName
    }
  }
})

export default store
  1. 添加全局的監(jiān)聽函數(shù)
  • common/themeMixin.js
import { mapState, mapGetters } from 'vuex'

export default {
  install(Vue) {
    Vue.mixin({
      computed: {
        ...mapState({
          themeName: 'themeName'
        })
      }
    })
  }
}
  • main.js
import '@/common/base.scss'
import store from '@/store/index'
import themeMixin from '@/common/themeMixin.js'

import { createSSRApp } from 'vue'
const app = createSSRApp(App)
app.use(store)
app.use(themeMixin)
  1. 給要切換的頁面加上css變量
  • login.vue
<template>
  <view class="container" :class="themeName">
      <view class="btn">
         <button
         class="btn-primary"
         @click="handleSwitch"
         >切換</button>
      </view>
  </view>
</template>

<script setup>
import { useStore } from 'vuex'
const store = useStore()

function handleSwitch() {
  store.commit('setTheme', 'dark-theme')
}
</script>

<style lang="scss" scoped>
.container {
  width: 100vw;
  min-height: 100vh;
  position: relative;
  background: var(--solar-back-color2);
}
.btn-primary {
  cursor: pointer;
  width: 670rpx;
  height: 96rpx;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 32rpx;
  font-weight: 400;
  color: #fff;
  background: linear-gradient(
    270deg,
    #ff8800 0%,
    #ff5000 100%
  );
  border-radius: 24rpx;
  box-sizing: border-box;
}
</style>

到了這里,關于uni-app+vue3微信小程序切換主題皮膚的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • uni-app Vue3實現(xiàn)一個酷炫的多功能音樂播放器支持微信小程序后臺播放

    uni-app Vue3實現(xiàn)一個酷炫的多功能音樂播放器支持微信小程序后臺播放

    本文存在多張gif演示圖,建議在 wifi 環(huán)境下閱讀?? 最近在做網(wǎng)易云音樂微信小程序開源項目的時候,關于 播放器功能 參考了一些成熟的微信小程序,如 網(wǎng)易云音樂小程序 和 QQ音樂小程序 ,但是發(fā)現(xiàn)這些 小程序端 的播放器相對于 APP端 來說較簡單,只支持一些基礎功能,

    2024年01月24日
    瀏覽(104)
  • Uni-app實現(xiàn)左右滑動頁面內容切換(兼容微信小程序)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 ? ? ? ? 前言 ? ? ? ? 整體思路 ? ? ? ??一、HTML部分 ????????二、Script部分 ????????三、Style部分 ? ? ? ? ? (先聲明哦我可不是偷懶,只是想學術借鑒一下)因為最近有在做左右滑動功能,

    2024年02月07日
    瀏覽(112)
  • 語法速通 uni-app隨筆【uni-app】【微信小程序】【vue】

    語法速通 uni-app隨筆【uni-app】【微信小程序】【vue】

    其中, pages 目錄/ index 目錄【必有】: index.js 編寫業(yè)務邏輯 【初始數(shù)據(jù),生命周期函數(shù)】 index.json 編寫配置 index.wxml 編寫模板 【可理解為本頁html】 index.wxss 【可理解為本頁css】 直接輸入敲回車,連尖括號都不需要就可以標簽補全 1)初始數(shù)據(jù)寫死 在 index.wxml 引入變

    2024年02月12日
    瀏覽(228)
  • uni-app開發(fā)微信小程序 vue3寫法添加pinia

    uni-app開發(fā)微信小程序 vue3寫法添加pinia

    使用uni-app開發(fā),選擇vue3語法,開發(fā)工具是HBliuderX。雖然內置有vuex,但是個人還是喜歡用Pinia,所以就添加進去了。 Pinia官網(wǎng)連接 第一步: 在項目根目錄下執(zhí)行命令: npm install pinia 第二步: 配置main.js文件 第三步,使用: 創(chuàng)建store文件夾、創(chuàng)建store/index.js 然后創(chuàng)建store/modu

    2024年02月03日
    瀏覽(29)
  • 如何用uni-app+vue3+vant開發(fā)微信小程序

    如何用uni-app+vue3+vant開發(fā)微信小程序

    uni-app之前一直只支持vue2語法, 2021年8月:新版支持 了vue3 開發(fā),App平臺編譯器升級為 Vite; 新版 uni-app 框架主要做了三大改進: 重寫框架內核:基于 vue3 + ts 重寫內置組件和API,實現(xiàn)更徹底、更高效的 tree-shaking ; 新增支持 Vite 構建工具,在H5平臺實現(xiàn)秒開預覽; 新增支持

    2024年02月09日
    瀏覽(22)
  • uni-app+vue2 微信小程序 使用canvas繪制折線圖/波形圖

    uni-app+vue2 微信小程序 使用canvas繪制折線圖/波形圖

    ? 接口返回一個數(shù)組,每一項均是一個數(shù)字,代表著y坐標,x坐標需自己處理。 我的數(shù)據(jù)是1024個浮點數(shù),在-10到10之間 波形圖需要xy軸縮放功能,用c3的 transform: scale()是不行的,至少會失真。 然后背景的格子,我這里是每個格子要求100個點,初始縮放下是11個格子,10條線(

    2024年04月26日
    瀏覽(26)
  • uni-app的Vue.js實現(xiàn)微信小程序的緊急事件登記頁面功能

    uni-app的Vue.js實現(xiàn)微信小程序的緊急事件登記頁面功能

    主要功能實現(xiàn)? 完成發(fā)生時間選擇功能,用戶可以通過日期選擇器選擇事件發(fā)生的時間。 實現(xiàn)事件類型選擇功能,用戶可以通過下拉選擇框選擇事件的類型。 添加子養(yǎng)殖場編號輸入框,用戶可以輸入與事件相關的子養(yǎng)殖場編號。 完成事件描述輸入功能,用戶可以通過文本輸

    2024年02月12日
    瀏覽(30)
  • 即時通訊實現(xiàn)微信掃碼登錄web網(wǎng)站(vue + uni-app + java + 微信小程序)
  • 微信小程序外賣跑腿點餐(訂餐)系統(tǒng)(uni-app+SpringBoot后端+Vue管理端技術實現(xiàn))

    微信小程序外賣跑腿點餐(訂餐)系統(tǒng)(uni-app+SpringBoot后端+Vue管理端技術實現(xiàn))

    自從計算機發(fā)展開始,計算機軟硬件相關技術的發(fā)展速度越來越快,在信息化高速發(fā)展的今天,計算機應用技術似乎已經(jīng)應用到了各個領域。 在餐飲行業(yè),除了外賣以外就是到店里就餐,在店里就餐如果需要等待點餐的話,用戶的體驗度就會急劇下降,很多餐飲店也開始開發(fā)

    2024年04月11日
    瀏覽(18)
  • WebStorm開發(fā)uni-app ,用vue2實現(xiàn)手機APP(apk) + 微信小程序多端項目開發(fā)方案

    WebStorm開發(fā)uni-app ,用vue2實現(xiàn)手機APP(apk) + 微信小程序多端項目開發(fā)方案

    我們主要分析了如下小程序開發(fā)框架,主要包括: 框架 技術棧 案例 微信小程序 支付寶小程序 百度小程序 頭條小程序 H5 App uni-app Vue 豐富 ? ?? ?? ? ?? ? Taro React 豐富 ? ? ? ? ? ? wepy Vue 豐富 ? ? ? ? ? ? mpvue Vue 豐富 ? ? ? ? ?? ? ?首先,就要排

    2024年02月08日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包