【经验分享】如何手撸一个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

目录
相关文章
|
3月前
|
Android开发 开发者 Python
手撸了一个全自动微信清粉小工具(源码详解)
微信清理僵尸粉工具利用Python和`uiautomator2`库,通过模拟转账操作自动检测并标记微信好友列表中被删除、被拉黑或账号存在问题的“僵尸粉”。工具支持开启调试模式、自动打开微信、获取好友信息、判断好友状态、管理标签等功能,最终将检测结果记录到文件中,便于用户管理和清理好友列表。此工具适用于Android设备,已在OPPO Reno4 Pro上测试成功。
183 5
|
8月前
|
JavaScript
小而美的IKUN-UI组件库源码学习(前言)
小而美的IKUN-UI组件库源码学习(前言)
176 0
小而美的IKUN-UI组件库源码学习(前言)
|
9月前
|
安全
心得经验总结:手缝针法大全
心得经验总结:手缝针法大全
67 0
|
10月前
|
编解码 Java 程序员
一文揭开您对手机所有的疑惑
一文揭开您对手机所有的疑惑
83 0
|
10月前
|
XML Java 数据格式
🚀今天,我们来详细的聊一聊SpringBoot自动配置原理,学了这么久,你学废了吗?
🚀今天,我们来详细的聊一聊SpringBoot自动配置原理,学了这么久,你学废了吗?
134 0
|
前端开发 自动驾驶 算法
这个知识点99%的前端都没有听过,不信你进来看?
这个知识点99%的前端都没有听过,不信你进来看?
117 0
|
XML Java API
49张图带领小伙伴们体验一把 Flowable-UI
49张图带领小伙伴们体验一把 Flowable-UI
|
小程序 Java 关系型数据库
大厂程序员接私活被坑, 还被放鸽子,那源码就开源-基于SSM仿知乎小程序
一,系统演示;二,系统的简介;三,核心代码展示
166 0
大厂程序员接私活被坑, 还被放鸽子,那源码就开源-基于SSM仿知乎小程序
|
JSON 小程序 API
小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇
小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇
160 0
小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇
|
程序员 计算机视觉
造个‘’轮子‘’!只要掌握了这几点,你也可以撸一个写在简历上的轮子(附手撸过程)
我给我的独木轮命名为:SweetCode,意味着你每天写代码就和吃Sugar一样甜蜜,哎呀妈呀,简直不要不要的。他的官方文档长这样,目前我就写了一个模块,都是自己在工作中常用到的一些小工具类,自己整理起来也是方便自己以后复用。
791 0
造个‘’轮子‘’!只要掌握了这几点,你也可以撸一个写在简历上的轮子(附手撸过程)

热门文章

最新文章