评论

云数据库中监听collection的watch真是个好东东

云数据库 watch collection

小白又来了,大牛多多指教

1.首先是我自己的需求:用户下单,商品数量应该即时变化.这样别人就会实时的看到数据

2.其实这个场景用的挺多的.比如你买票,买走一张,剩下的要自动更新数量(纠结的是,买了就走了。谁还管你剩多少???哈哈)

3.watch的是collection.

4.watch可以替代传统的get

5.如果用的页面多的话,watch可以在app.js中作为全局变量定义;如果少的话,哪个页面用就在哪个页面的page外面定义.小白感觉不出来多大区别0-0

6.在page的外面定义watch,然后在page的生命周期load或show里定义对应的方法.这样做的好处是:可以方便的setData;

7.如果你watch的声明和定义都在page外面,就会面临一个如何修改page内部数据的问题.(据说很蛋疼0-0)

8.通常时,页面hide的时候,应该关闭watch,避免资源系统消耗

9.下面给出一个demo:每当符合条件的数据发生变化时,就把结果取出来,重新渲染页面

10.最好用的时先判断下.这个想法好:if(watcher) { watcher.close()    }

小白理解的不深,多多指教,特别感谢云大学群里的小汐和life...



最后一次编辑于  2020-03-06  
点赞 5
收藏
评论

8 个评论

  • 正在输入中....
    正在输入中....
    01-23

    这条很有用啊,定义在外面就不容易setdata,定义在里面就难以在关闭页面的时候关闭。这样应用确实很不错!

    01-23
    赞同
    回复
  • 豪
    2022-11-12

    5.如果用的页面多的话,watch可以在app.js中作为全局变量定义;如果少的话,哪个页面用就在哪个页面的page外面定义.小白感觉不出来多大区别0-0

    如A页面是主页,将这个watch功能写在B页面,已进入B页面就监听到,并且返回用户的信息。问题是返回到了A主页面,当数据库修改时,A页面为什么还是能监听到用户表信息?我不想让他再监听到信息。

    2022-11-12
    赞同
    回复
  • 美的人生
    美的人生
    2020-11-04

    你好,使用watch时通过limit限制条数,然后触底加载时,就加载不了其他的数据!能否解决啊??

    2020-11-04
    赞同
    回复 1
    • 杨工
      杨工
      2022-06-04
      不使用 limit 会监听所有数据 ,
      2022-06-04
      回复
  • 漫漫路
    漫漫路
    2020-06-09

    这个 let watcher = null是不是只能放在page()外,我直接用文档例子const watcher = 放在bindtap绑定一个点击事件函数中,不起效果

    2020-06-09
    赞同
    回复 2
  • 鲁愚
    鲁愚
    2020-05-10

    onHide之后,再唤醒小程序,发现数据不能自动刷新数据了


    2020-05-10
    赞同
    回复 3
    • 大树¹³⁷ºººº⁵⁴⁸¹
      大树¹³⁷ºººº⁵⁴⁸¹
      2020-05-14
      那可能要在onshow里执行函数了.你试试
      2020-05-14
      回复
    • 鲁愚
      鲁愚
      2020-05-14回复大树¹³⁷ºººº⁵⁴⁸¹
      感谢! 前天刚试过onShow,更新数据太频繁太多,取消不用了。 
      另外, 好像close方法没有实质取消,而且也无法判断是否已经close了。
      2020-05-14
      回复
    • 大树¹³⁷ºººº⁵⁴⁸¹
      大树¹³⁷ºººº⁵⁴⁸¹
      2020-05-16回复鲁愚
      嗯.onshow不建议执行太多更新数据操作
      2020-05-16
      回复
  • ma
    ma
    2020-05-07

    这个监听,每次监听有结果,都算一次数据库读取次数吧。

    2020-05-07
    赞同
    回复 2
    • 大树¹³⁷ºººº⁵⁴⁸¹
      大树¹³⁷ºººº⁵⁴⁸¹
      2020-05-14
      具体的原理不是很清楚.反正只要库中的数据有变化就会触发.也可以算是读库吧
      2020-05-14
      回复
    • 大树¹³⁷ºººº⁵⁴⁸¹
      大树¹³⁷ºººº⁵⁴⁸¹
      2020-06-03
      这个是不是可以考虑用来做抢票类似的东东?抢一个.更新一个
      2020-06-03
      回复
  • 小肥羊🍊
    小肥羊🍊
    2020-03-23

    我最近也在熟悉这个watch,,比如我有个场景,一条记录有num1,num2两个字段,当num1变更的时候,我要更新num2,这个时候,能适合watch的场景吗?

    2020-03-23
    赞同
    回复 4
  • 通亚 - 仲华
    通亚 - 仲华
    2020-03-09

    你好,你代码中where 里面num=1.请问如果是num大于1,代码怎么写?谢谢!

    2020-03-09
    赞同
    回复 9
    查看更多(4)
登录 后发表内容