请问下,在用原生js写一个插件的时候,如果需要操作DOM,有没有别的简单的方法呢

最近需要用原生js写一个业务组件,但是里面有很多dom的操作,用原生js是写的真难受,动态加dom,加样式,显示隐藏dom,绑定事件和解绑事件等等。请问下大佬们,在用原生写组件的时候,关于操作dom这块有没有别的js库或者好用的方法,让这块能简单点

阅读 3k
3 个回答

这种dirty work总要有人做的吧,不是框架/类库来做就是自己做
至于专注dom的库,jquery算不算,恐怕不符合你的要求吧

看了下你跟别人的沟通,其实整个组件都用一个委托,是可以的,比如click(我之前写过一个表格,就一个点击,涉及输入框、下拉框和按钮),只要你把逻辑合理的分散出去就行了,但是如果是input这种特定元件,要绑定change或者input,那就只能逐个绑定了。

原生js写的麻烦之处主要在于:数据(model),dom(view)和事件(action)的配合,vue和react这些框架把这3个点糅合起来了,提供了一套指令和定义的开发模式给你,如果要原生js写的顺畅,你也必须通过一定的编程方法论去糅合这3个东西。

为了简单起见,我觉得你可以用zepto,你可以把里面多余的模块剥离(很好剥离),比如ajax和表单处理,只留下事件和dom模块,然后你自己通过面向对象的思想,将数据进行建模和封装,把事件和dom操作关联起来,实现你调用方法,驱动dom更新和事件,而不是每次:数据逻辑操作=>dom获取=>dom更新,这样一连串麻烦的事情,确实很烦。

推荐问题
宣传栏