当前位置:首页 > uni-app

uniapp 样式切换

2026-03-05 04:40:36uni-app

动态类名绑定

通过 :class 绑定动态类名,结合条件判断实现样式切换。在模板中使用三元表达式或对象语法控制类名生效与否。

<template>  
  <view :class="isActive ? 'active-style' : 'inactive-style'">内容</view>  
</template>  

或在脚本中定义计算属性:

computed: {  
  dynamicClass() {  
    return {  
      'active-style': this.isActive,  
      'disabled': !this.isValid  
    };  
  }  
}  

内联样式绑定

使用 :style 直接绑定动态样式对象,适用于需要实时计算的样式属性。

<view :style="{ color: textColor, fontSize: fontSize + 'px' }">动态样式</view>  

脚本中定义样式对象:

data() {  
  return {  
    styleObject: {  
      backgroundColor: 'red',  
      transform: `rotate(${angle}deg)`  
    }  
  };  
}  

条件渲染结合样式

通过 v-if/v-elsev-show 切换不同样式结构的元素,适合整体样式差异较大的场景。

<view v-if="theme === 'dark'" class="dark-theme">暗色主题</view>  
<view v-else class="light-theme">亮色主题</view>  

全局主题管理

利用 Vuex 或全局变量管理主题状态,通过 CSS 变量实现动态主题切换。

uniapp 样式切换

  1. 定义全局 CSS 变量:
    :root {  
    --primary-color: #007AFF;  
    --bg-color: #FFFFFF;  
    }  
    .dark-theme {  
    --primary-color: #0A84FF;  
    --bg-color: #1C1C1E;  
    }  
  2. 在组件中应用变量:
    <view class="container" :class="theme">  
    <text style="color: var(--primary-color)">文本</text>  
    </view>  
  3. 通过 JavaScript 切换主题类名:
    methods: {  
    switchTheme() {  
     this.theme = this.theme === 'dark-theme' ? '' : 'dark-theme';  
    }  
    }  

注意事项

  • 使用 rpx 单位确保多端样式兼容性。
  • 动态样式绑定可能影响渲染性能,避免频繁更新复杂样式。
  • 深色模式适配建议结合 uni.getSystemInfo() 获取系统主题设置。

标签: 样式uniapp
分享给朋友:

相关文章

uniapp面试问啥

uniapp面试问啥

技术基础类问题 UniApp框架特性 跨端实现原理及条件编译的使用场景 如何理解"一次开发,多端运行"的优缺点 rpx与vw/vh单位的适配差异 Vue相关 生命周期在UniA…

uniapp $on

uniapp $on

uniapp $on 方法详解 $on 是 UniApp 中用于监听全局事件的 API,常用于跨页面或跨组件通信。它基于 Vue 的事件机制,允许在全局范围内触发和监听自定义事件。 基本语法 uni…

uniapp 编辑

uniapp 编辑

uniapp 编辑功能实现方法 在uniapp中实现编辑功能通常涉及表单处理、数据绑定和状态管理。以下为常见实现方式: 表单数据双向绑定 使用v-model指令实现表单元素与数据的双向绑定: &l…

uniapp广播

uniapp广播

全局事件通信 在UniApp中实现广播功能可通过全局事件机制完成,适用于跨页面或组件通信。使用uni.$emit、uni.$on、uni.$off等方法实现事件的触发、监听与移除。 发送广播(触发事…

uniapp 日志

uniapp 日志

uniapp 日志管理方法 uniapp本身没有内置日志系统,但可以通过以下方式实现日志记录功能: 使用console.log输出日志 开发阶段可以直接使用console.log()、console…

uniapp有用

uniapp有用

Uniapp 的优势 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布,适用于 iOS、Android、Web、小程序等多个平台。其核心优势包括: 跨平台兼容性:…