如何评价 Vue 的 Function-based Component?
2019-11-22 09:32:27来源:博客园 阅读 ()
如何评价 Vue 的 Function-based Component?
作者:匿名用户
链接:https://www.zhihu.com/question/325397290/answer/708418099
来源:知乎
事实性错误:
那 vue 呢?它连 HOC 都没有,render props 更不现实(jsx自带)
- HOC
const DefaultButton = { props: { text: String }, template: `<button>{{text}}</button>` } function wrap(comp) { return { components: { comp }, template: `<comp text="123"/>` } } new Vue({ components: { TextButton: wrap(DefaultButton) }, template: `<text-button />` })
2. HOC + render props
const DefaultButton = { props: { renderText: Function }, render(h) { return h('button', this.renderText()) } } function wrap(comp) { return { render(h) { return h(comp, { attrs: { renderText: () => "123" } }) } } } const textButton = wrap(DefaultButton) new Vue({ render(h) { return h(textButton) } })
react 的不可变,纯函数。直接导致 hooks 必须使用 const 关键字,不能是 let,这也是 hooks 的奇迹之一
const
keyword 和 "不可变,纯函数" 有什么关系, 若使用 let、var, 是否不能实现hook?
请问:
- Hooks对Fiber更好 -> Hooks是Fiber的产物 -> 没有Fiber就不是Hooks
请问怎么用逻辑推理出这条链?
2. 对于你回答中的事实性错误, 你持什么看法?
Jasin Yip不知道有没有正确理解你说的“移除一个属性”:
onst DefaultButton = { props: { renderText: Function }, render(h) { return h('button', this.renderText()) } } function omitRenderText(comp, render) { return { render(h) { const { renderText, ...others } = this.$attrs return h(comp, { attrs: { ...others, renderText: render || renderText } }) } } } const textButton = omitRenderText(DefaultButton, () => "000") new Vue({ render(h) { return h(textButton, { attrs: { renderText: () => "123" } }) } })
如果你觉得这篇文章对你还是有很大帮助的话,不介意的话可以加下我刚刚建立的一个学习交流群,有很多相关资料和学习视频:907694362
原文链接:https://www.cnblogs.com/xsd1/p/11912276.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查 2020-07-15
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查 2020-07-15
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查 2020-07-14
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查 2020-07-13
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查 2020-07-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash