Giter VIP home page Giter VIP logo

Comments (5)

GaoNeng-wWw avatar GaoNeng-wWw commented on August 11, 2024

beforeToggle 是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。

from vue-devui.

xingyan95 avatar xingyan95 commented on August 11, 2024

beforeToggle 是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。

回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是PromisesetTimeout等,组件内部需要处理的逻辑会比较多。通过提供done函数的方式,组件内部可以不用关注用户用的哪种异步,只需要保证用户在执行完异步之后,调用done能够改变折叠状态,不调用done则不会改变即可。

from vue-devui.

GaoNeng-wWw avatar GaoNeng-wWw commented on August 11, 2024

beforeToggle 是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。

回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是PromisesetTimeout等,组件内部需要处理的逻辑会比较多。通过提供done函数的方式,组件内部可以不用关注用户用的哪种异步,只需要保证用户在执行完异步之后,调用done能够改变折叠状态,不调用done则不会改变即可。

嗯,确实是一个不错的方法。但或许我不会用done这个名称,我认为preventCollapsed或许更好,因为这样可以更加的语义化。或者我们两者都要?

from vue-devui.

xingyan95 avatar xingyan95 commented on August 11, 2024

beforeToggle 是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。

回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是PromisesetTimeout等,组件内部需要处理的逻辑会比较多。通过提供done函数的方式,组件内部可以不用关注用户用的哪种异步,只需要保证用户在执行完异步之后,调用done能够改变折叠状态,不调用done则不会改变即可。

嗯,确实是一个不错的方法。但或许我不会用done这个名称,我认为preventCollapsed或许更好,因为这样可以更加的语义化。或者我们两者都要?

  1. preventCollapsed是阻止折叠吧,语义上来说可能有些限制了,beforeToggle应该是折叠和展开两种情况都会触发吧。
  2. beforeToggle的作用应该是在改变折叠状态之前,执行一些操作,操作结束之后,根据执行结果可以选择允许改变折叠状态或者阻止改变,done有完毕/结束的意思,表示可以继续执行之前改变折叠状态的动作。
  3. done我认为更通用一些,在ModalDrawer等组件中,都有像bofore-close这种和before-toggle类似的需求,可以采用同样的思路和命名来实现,这种通用的我觉可以在田主大会上一起讨论下~

from vue-devui.

kagol avatar kagol commented on August 11, 2024

beforeToggle 是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。

回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是PromisesetTimeout等,组件内部需要处理的逻辑会比较多。通过提供done函数的方式,组件内部可以不用关注用户用的哪种异步,只需要保证用户在执行完异步之后,调用done能够改变折叠状态,不调用done则不会改变即可。

嗯,确实是一个不错的方法。但或许我不会用done这个名称,我认为preventCollapsed或许更好,因为这样可以更加的语义化。或者我们两者都要?

这个done其实是beforeToggle方法的一个参数,大致使用场景是:

<d-panel
  :beforeToggle="beforeToggle"
></d-panel>

const beforeToggle = (done) => {
  fetch(url).then(({ hasPermission }) => {
    if (hasPermission) {
      // 如果有权限则调用 done 回调函数展开面板内容
      done();
    } else {
      // 如果没有权限,则提示没有权限查看折叠面板里面的内容
    }
  })
}

from vue-devui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.