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

目录
相关文章
|
JSON 小程序 数据格式
【经验分享】支付宝小程序lottie动画尝鲜
【经验分享】支付宝小程序lottie动画尝鲜
721 6
|
存储 Rust 安全
Rust 笔记:Rust 语言中的 所有权 与 生命周期
Rust 笔记:Rust 语言中的 所有权 与 生命周期
491 0
|
达摩院 供应链 Cloud Native
低代码这么火,它的人才认证你考了吗?
2021年超级🔥 的证书!限时免费认证中……
9202 0
低代码这么火,它的人才认证你考了吗?
|
域名解析 缓存 网络协议
什么是DNS枚举?
【4月更文挑战第10天】
502 8
什么是DNS枚举?
|
JavaScript 小程序 Android开发
【经验分享】如何实现自定义的actionSheet组件
【经验分享】如何实现自定义的actionSheet组件
321 6
|
小程序 JavaScript 前端开发
【每周一个小技巧】支付宝小程序如何跳转到支付宝搜索页面
【每周一个小技巧】支付宝小程序如何跳转到支付宝搜索页面
499 7
|
小程序 IDE Serverless
【经验分享】支付宝小程序serverless云开发拓荒
【经验分享】支付宝小程序serverless云开发拓荒
396 6
|
小程序 前端开发 IDE
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
1624 7
|
小程序
【经验分享】如何生成支付宝小程序scheme链接
【经验分享】如何生成支付宝小程序scheme链接
6015 2

热门文章

最新文章