当前位置:首页 > uni-app

uniapp 样式切换

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

动态类名绑定

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

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

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

uniapp 样式切换

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

内联样式绑定

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

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

脚本中定义样式对象:

uniapp 样式切换

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 变量实现动态主题切换。

  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 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全局…

uniapp 搜索

uniapp 搜索

uniapp 搜索功能实现方法 全局搜索组件集成 在pages.json中配置全局搜索栏,适用于所有页面顶部显示搜索框。示例代码: "globalStyle": { "navigationBa…

uniapp 成功案例

uniapp 成功案例

成功案例概览 UniApp 凭借跨平台开发能力,已被多个行业采用,涵盖电商、社交、教育、政务等领域。以下为部分典型案例: 京东拼购 京东拼购(现为“京喜”)采用 UniApp 开发,实现微信小程序、…

uniapp图形绘制

uniapp图形绘制

Uniapp 图形绘制方法 Uniapp 提供了多种图形绘制的方式,适用于不同场景需求。以下是常见的实现方法: Canvas 绘制 Uniapp 支持使用 HTML5 Canvas API 进行图形…

uniapp如何优化

uniapp如何优化

优化性能 减少页面层级,避免过多嵌套组件。使用v-if和v-show合理控制组件显示,减少不必要的DOM节点渲染。对于长列表,使用<scroll-view>或<list>组件并…

uniapp 自动打包

uniapp 自动打包

uniapp 自动打包方法 uniapp 支持通过命令行或 CI/CD 工具实现自动化打包,适用于 H5、小程序、App 等平台。以下是常见的自动打包方式: H5 或小程序打包 使用 npm ru…