百度小程序开发中如何检测数据
1、不管是对于对象还是基本类型,在小程序开发中,都只能通过this.setData()来改变,这样我们只需检测data里面的key值的变化,而不用检测key值里面的key。测试代码如图,自己敲一敲。
2、如果我们需要实现watch和computed方法,就要做一些小小的变动了。我们需要使得,当test变化时,test1、test2、test3也随之变化。watch 方法相对简单,首先我们定义一个函数来检测变化:
3、然后我们需要遍历watch函数传入的对象,给每个键调用该方法。代码如图:这里有参数是fn,即上面watch方法里test的值,这里把该方法包一层,绑定context。
4、接着来看computed,这个稍微复杂,因为我们无法得知computed里依赖的是data里面的哪个懈吡赜痖变量,因此只能遍历data里的每一个变量。这段代码的意义是,第一步,给data里的每个属性调用defineReactive方法。然后,分别计算computed里面每个属性第一次的值,也就是上例中的test2、test3。
5、这里分别调用test2和test3的值,将返回值与对应的key值组合成一个对象,然后再调用setDat锾攒揉敫a(),这样就会第一次计算这两个值,这里使用了reduce方法。test2和test3都是依赖test的,这样必须在test改变的时候在其的setter函数中调用test2和test3中对应的函数,并通过setData来设置这两个变量。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:26
阅读量:56
阅读量:35
阅读量:25
阅读量:41