百度小程序开发中如何检测数据
在开发百度小程序的时候,你作为开发者,是如何检测数据的呢?除了this.setData()函数,你还知道哪些方法呢?跟着这篇经验来看看即速应用怎么说吧。
不管是对于对象还是基本类型,在小程序开发中,都只能通过this.setData()来改变,这样我们只需检测data里面的key值的变化,而不用检测key值里面的key。测试代码如图,自己敲一敲。
如果我们需要实现watch和computed方法,就要做一些小小的变动了。我们需要使得,当test变化时,test1、test2、test3也随之变化。
watch 方法相对简单,首先我们定义一个函数来检测变化:
然后我们需要遍历watch函数传入的对象,给每个键调用该方法。代码如图:
这里有参数是fn,即上面watch方法里test的值,这里把该方法包一层,绑定context。
接着来看computed,这个稍微复杂,因为我们无法得知computed里依赖的是data里面的哪个变量,因此只能遍历data里的每一个变量。
这段代码的意义是,第一步,给data里的每个属性调用defineReactive方法。然后,分别计算computed里面每个属性第一次的值,也就是上例中的test2、test3。
这里分别调用test2和test3的值,将返回值与对应的key值组合成一个对象,然后再调用setData(),这样就会第一次计算这两个值,这里使用了reduce方法。test2和test3都是依赖test的,这样必须在test改变的时候在其的setter函数中调用test2和test3中对应的函数,并通过setData来设置这两个变量。
版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/life/44467.html