收藏
回答

如何实现Component多实例?

有以下场景:

组件A1 -> 跳转组件A2 -> 跳转组件A3

理论上希望A3展示的时候, 能保持A1, A2的状态不变. 这样在销毁A3时, A2能展示跳转A3前的状态.

H5下, 可以new多个实例来实现. 那么小程序里有什么解决办法?

ps. 现在唯一能想到的思路是自己维护组件快照, 把状态维护成一个队列. 但是问题是, 比如组件有一些dom操作怎么保存等等...

回答关注问题邀请回答
收藏

2 个回答

  • 游戏人生
    游戏人生
    2021-02-25

    维护插件多个实例的意义是?

    是要提升加载速度吗?

    在我看来,如果是要维护数据结构的话,可以挂在全局上。

    Component只是一个容器,没get到你的点

    2021-02-25
    有用
    回复 2
    • oᗨΗᗨnHnɥZ
      oᗨΗᗨnHnɥZ
      2021-02-25
      假设现在点击某个button后, 出现A弹窗, A里某个元素会触发B弹窗, B里会触发C弹窗. 这里A, B, C是同一个组件


      现在希望关闭C的时候, B能保持在触发C前的状态(比如滚动的位置, 元素的选择), 同理, 关闭B也能让A保持原状态.


      H5的做法是ABC三个不同的组件, 通过z-index控制, 页面表现为B盖在A上, C盖在B上.


      小程序里为了节约代码成本, 希望能在一个组件里实现ABC功能(UI都是相同的, 只是数据不一样). 于是就出现了问题里的思考.
      2021-02-25
      回复
    • 游戏人生
      游戏人生
      2021-02-26回复oᗨΗᗨnHnɥZ
      也就是说。。。你想要做到ABC之前互相通讯对吧?
      2021-02-26
      回复
  • 阿旺
    阿旺
    2021-02-23

    小程的组件不就是多实例的嘛,每个组件单独维护自己的状态

    2021-02-23
    有用
    回复 5
    • oᗨΗᗨnHnɥZ
      oᗨΗᗨnHnɥZ
      2021-02-23
      那像上文里提到的业务场景, 不能够在page里引用多个组件吧...
      2021-02-23
      回复
    • 阿旺
      阿旺
      2021-02-24回复oᗨΗᗨnHnɥZ
      没来理解你说的组件之间的跳转场景。你描述的是这样的嘛?有三个页面A、B、C,他们三个页面中都有同一个组件a 然后点击页面A的组件a 跳转到页面B,页面B中的组件a点击跳转到页面C。这样嘛?
      2021-02-24
      回复
    • 阿旺
      阿旺
      2021-02-24回复oᗨΗᗨnHnɥZ
      如果说,你想在同一个页面引用同一个组件的多个实例,你可以在页面中使用组件的时候,给多个相同的组件绑定不同的id属性,然后再页面中通过this.selectComponent("#id")获取不同的实例。
      2021-02-24
      回复
    • oᗨΗᗨnHnɥZ
      oᗨΗᗨnHnɥZ
      2021-02-25回复阿旺
      那这个是不是就会出现如下的情况, 但其实只希望页面引入一个My-Component
      2021-02-25
      回复
    • 阿旺
      阿旺
      2021-02-25回复oᗨΗᗨnHnɥZ
      是的。如果只引入一个的话,还是没办法实现多组件实例的
      2021-02-25
      回复
登录 后发表内容
问题标签