Comments (5)
beforeToggle
是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。
from vue-devui.
beforeToggle
是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。
回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是Promise
、setTimeout
等,组件内部需要处理的逻辑会比较多。通过提供done
函数的方式,组件内部可以不用关注用户用的哪种异步,只需要保证用户在执行完异步之后,调用done
能够改变折叠状态,不调用done
则不会改变即可。
from vue-devui.
beforeToggle
是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是
Promise
、setTimeout
等,组件内部需要处理的逻辑会比较多。通过提供done
函数的方式,组件内部可以不用关注用户用的哪种异步,只需要保证用户在执行完异步之后,调用done
能够改变折叠状态,不调用done
则不会改变即可。
嗯,确实是一个不错的方法。但或许我不会用done这个名称,我认为preventCollapsed
或许更好,因为这样可以更加的语义化。或者我们两者都要?
from vue-devui.
beforeToggle
是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是
Promise
、setTimeout
等,组件内部需要处理的逻辑会比较多。通过提供done
函数的方式,组件内部可以不用关注用户用的哪种异步,只需要保证用户在执行完异步之后,调用done
能够改变折叠状态,不调用done
则不会改变即可。嗯,确实是一个不错的方法。但或许我不会用done这个名称,我认为
preventCollapsed
或许更好,因为这样可以更加的语义化。或者我们两者都要?
preventCollapsed
是阻止折叠吧,语义上来说可能有些限制了,beforeToggle
应该是折叠和展开两种情况都会触发吧。beforeToggle
的作用应该是在改变折叠状态之前,执行一些操作,操作结束之后,根据执行结果可以选择允许改变折叠状态或者阻止改变,done
有完毕/结束的意思,表示可以继续执行之前改变折叠状态的动作。done
我认为更通用一些,在Modal
、Drawer
等组件中,都有像bofore-close
这种和before-toggle
类似的需求,可以采用同样的思路和命名来实现,这种通用的我觉可以在田主大会上一起讨论下~
from vue-devui.
beforeToggle
是面板折叠状态改变前的回调函数,可以有返回值,当返回值为false时面板不允许折叠。回调函数里面需要支持的异步类型不太可控,回调函数中的异步可以是
Promise
、setTimeout
等,组件内部需要处理的逻辑会比较多。通过提供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)
- ✨ [Feature]: 允许设置 Button 图标位置
- ✨ [Feature]: Markdown MD组件支持暴露语言类名。 HOT 2
- 🐛 [Bug]: `Search`元件中双向绑定的删除图标存在异常
- ✨ [Feature]: Markdown MD 编辑器快捷键功能需要补全。
- ✨ [Feature]: CodeReview组件增加多行选择功能 HOT 7
- ✨ [Feature]: 统一和规范DevUI样式
- ✨ [Feature]: 将VitePress迁移至最新版
- ✨ [Feature]: devui的tree组件,devui-tree__node不支持有选中的类名 HOT 2
- 🐛 [Bug]: 分页器的pagesize点击不能展示选项
- 🐛 [Bug]: MD编辑器,配置快速提示功能 @后面有空格会导致@无法唤起 HOT 3
- ✨ [Feature]: Fullscreen 增加过渡动画相关 API
- 🐛 [Bug]: 官方文档中 Menu 组件的第一个 demo 中使用的 slider 组件意义不明
- ✨ [Feature]: Textarea 字数统计自定义渲染插槽
- 🐛 [Bug]: Slider 快速滑动时,Popover 可能会有明显的闪动 HOT 2
- ✨ [Feature]: Carousel 是否可以考虑增加 Trigger 和 Pagination 部分的自定义渲染插槽
- ✨ [Feature]: Menu 组件优化
- ✨ [Feature]: API 风格规范化
- ✨ [Feature]: 建议规范化 PR 发布内容
- 🐛 [Bug]: VSCode对组件JSX语法检测问题
- ✨ [Feature]: 你的存储库似乎被盗用了 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vue-devui.