在微信小程序中,开发 UI 功能模块,绝对比的上 iOS 原生开发。它已经提供了一套成熟的数据绑定方式,而不需要引入其它库。而在 iOS 中我们同样可以做数据绑定,然而需要花费一定的时间来学习一些数据绑定的框架,比如 RAC,RxSwift。这里主要以 RxSwift 为例说明。在小程序中,假如实现一个功能,点击按钮修改昵称,可以这样实现:

Page({
  data: {
    nickName: 'Lefe_x'
  },
  
  changeNickNameAction: function () {
    this.setData ({
      nickName: 'Lefe'
    })
  }
})

直接修改数据源 data 中的 nickName 即可让新的昵称(Lefe)显示到控件上。看看具体的数据绑定实现:

<view class="main-container">
   
   修改昵称
</view>

nickName 与一个 Text 的控件绑定到了一起,这样只要 nickName 发生改变,就会显示到 Text 控件上。而在 iOS 中我们可以使用 RxSwift 做数据绑定。比如:当 nickNameTextField 输入内容后,将显示在 nickNameLabel 上。

class MiniViewController: UIViewController {
    
    let disposeBag = DisposeBag()

    @IBOutlet weak var nickNameTextField: UITextField!
    @IBOutlet weak var nickNameLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        nickNameTextField.rx.text.bind(to: nickNameLabel.rx.text).disposed(by: disposeBag)
    }
}