【经验分享】如何手撸一个switch组件。

简介: 【经验分享】如何手撸一个switch组件。

众所周知,支付宝小程序的 switch安卓与IOS都是不同的样式,安卓为长方形的,而ios是带圆角的

为了应付设计小姐姐,当然也是为了解决这一问题,我们又得出来自己造。

组件布局:

<import-sjs name="parse" from="./parse.sjs" />
<view class="qts-class qts-switch {{parse.setSize(size)}} {{parse.setCurrent(value)}}" onTap="toggle">
  <input type="text" name="name" value="{{value}}" class="qts-switch-hide-input"></input>
  <view class="qts-switch-inner" a:if="{{value}}">
    <slot name="open"></slot>
  </view>
  <view class="qts-switch-inner" a:else>
    <slot name="close"></slot>
  </view>
</view>

至于SJS就不赘述,文档可以查到。

parse.sjs
var sizes = ["large", "small", "default"];
var prefixCls = "qts-switch";
var setSize = function (size) {
  var index = sizes.indexOf(size);
  return prefixCls + (index > -1 ? ('-' + size) : 'default')
}
var setCurrent = function (value) {
  var className = value ? prefixCls + "-checked" : "";
  return className;
};
export default {
  setSize,
  setCurrent
};


开放两个属性,一个当前的value,一个size样式大小。

Component({
  props: {
    value: false,
    size: 'default' // large、small、default
  },
  didMount() {
    this.setData({
      value: this.props.value
    })
  },
  didUpdate() {
    this.setData({
      value: this.props.value
    })
  },
  data: {
    value: false
  },
  methods: {
    toggle() {
      const value = this.data.value ? false : true;
      this.props.onChange({ value });
    }
  }
})


最后附上代码片段:

https://pen.mini-code.com/s/eb149907-0bb6-4e86-8707-357abdf594d2

目录
相关文章
|
2月前
|
人工智能 自然语言处理 数据挖掘
挖掘 AI 搜索提问长尾词,AI 搜索引擎优化如何抓住用户真实检索意图
本文详解AI搜索时代长尾词挖掘新范式:摒弃传统SEO短词思路,以用户真实提问意图为核心,通过多渠道采集、语义蒸馏、分层聚类、价值筛选、衍生拓展及动态校验六步法,构建适配大模型语义检索的高质量提问词库,提升内容被AI采信与转化效果。
354 0
|
4月前
|
监控 搜索推荐
WhatsApp企业号怎么开发B2B客户?从线索挖掘到成交复购全流程指南
WhatsApp以98%打开率成外贸获客新引擎,但多数企业仅将其当聊天工具。本文详解如何构建“线索挖掘→精准触达→分层跟进→复购转介”全流程闭环:通过潜客搜索、号码验证、客户标签与CRM联动,将WhatsApp升级为可量化、可复制的智能获客系统。(239字)
|
8月前
|
缓存 NoSQL 调度
4-Redis篇-4
本文详解Redis三大核心问题:缓存雪崩(大量key同时失效,需加随机过期时间)、热点数据保障(采用LFU淘汰策略)、分布式锁实现(基于SETNX,解决死锁、超时、归一、可重入及阻塞等问题),并附实战应用案例。
290 12
|
10月前
|
人工智能 算法 搜索推荐
马斯克2026采访详解:中国AI算力将远超世界,世界变化的奇点即将到来!
2026年1月,马斯克在德州工厂预言:AGI将于2025-2026年实现,Optimus机器人3年内超越外科医生,中国发电量将达美国3倍,AI算力将领先全球。他称“奇点已来”,电力决定AI未来,太阳能是关键。
|
12月前
|
人工智能 Android开发 iOS开发
MNN × Qwen 实战:离线运行大模型的正确姿势
本期教程带你用MNN+Qwen在手机端部署大模型,从安装MNN Chat体验离线对话,到源码编译、模型转换与推理测试,再到Android/iOS移动端部署全流程实战,并提供精度与性能调优秘籍,助力端侧AI创新挑战赛。
11598 26
|
11月前
|
存储 缓存 运维
游戏服务器云架构方案
游戏服务器云架构通过全球加速、分层服务器设计、混合数据存储与容器化运维,实现高并发低延迟的沉浸式体验。结合Redis缓存、时序数据库与Kubernetes弹性伸缩,保障MMORPG等重度游戏的实时同步与稳定运行,助力全球化部署与快速迭代。
869 0
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
20140 81
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
达摩院 供应链 Cloud Native
低代码这么火,它的人才认证你考了吗?
2021年超级🔥 的证书!限时免费认证中……
9966 0
低代码这么火,它的人才认证你考了吗?
|
文字识别 自然语言处理 数据可视化
Qwen2.5 全链路模型体验、下载、推理、微调、部署实战!
在 Qwen2 发布后的过去三个月里,许多开发者基于 Qwen2 语言模型构建了新的模型,并提供了宝贵的反馈。在这段时间里,通义千问团队专注于创建更智能、更博学的语言模型。今天,Qwen 家族的最新成员:Qwen2.5系列正式开源
Qwen2.5 全链路模型体验、下载、推理、微调、部署实战!
|
设计模式 缓存 监控
OKHttp3 从使用到原理分析
Okhttp3 是我们经常使用的一个网络框架,可扩展性强,支持 get 缓存, spdy、http2.0,gzip 压缩减少数据流量,同步和异步请求,连接池复用机制等特性让广大 android 开发者深爱不已,今天我就带大家从 Okhttp 简单使用,到各种好用拦截器原理了解 Okhttp3
3279 0
OKHttp3 从使用到原理分析