virtual-dom——如何获得真正的DOM元素,以便与spin.js集成
virtual-dom - how to get hold of real DOM element in order to integrate with spin.js?
使用虚拟DOM库时,如何获取虚拟DOM元素对应的真实DOM元素?用例是我需要通过spin.js库来操作DOM。
相应地,在React中你会调用React。示例代码:
let el = h('#spinner')
# TODO: Pass real DOM element, not virtual, but how?
new Spinner().spin(el)
我发现可以通过在有问题的虚拟节点上注册一个钩子来解决这个问题,这是虚拟dom AFAICT的一个小特性。一旦渲染完成,钩子就会被真正的DOM节点调用。
virtual-dom对于钩子是非常具体的,它们需要是在原型上具有hook
和unhook
函数的对象(不能是直接属性)。
let h = require('mercury').h
// Hook to get hold of real DOM node
let Hook = () => {}
Hook.prototype.hook = (node) => {
// Do what thou wilst with the node here
}
Hook.prototype.unhook = () => {}
// Mercury component
let Component = () => {
}
Component.render = (state) => {
// Create virtual node with hook
return h('div', {
hook: new Hook(),
})
}
相关文章:
- 性能与模块化:将JS集成到PHP或单独的custom.JS中
- 将epub.js集成到firefox中,作为.epub的默认读取器
- 借助D3.js集成Datatables插件
- 有没有什么方法可以将速度模板与backbone.js集成
- 将JS集成到JS中的干净方法
- 如何将Stripe Connect与Node.js集成
- 尝试将highlight.js集成到一个使用requirejs的angular应用程序中
- PrimeFaces Js 集成在 xhtml 页面中
- traverson.js集成到Angular2应用程序中
- 将纸张.js集成到棱角分明的.js中
- 将网络图与dc.js/crosfilter.js集成
- 将 Dropzone.js 集成到与其他字段的现有 HTML 表单中
- 如何将Ember.js与Express.js集成
- Node.js集成测试+数据库
- 如何将reCaptcha v2与JS集成PHP形式
- ace编辑器的焦点/模糊方法显然不能与termlib.js集成
- AdMob和纯HTML5-JS集成
- 如何将jQuery与React js集成
- Prebid JS集成与脉冲点交换
- virtual-dom——如何获得真正的DOM元素,以便与spin.js集成