@
mostkia 我后端写得多一些,半吊子前端。反正我的感觉是,vue 的设计目标就是数据-视图的自动渲染器,因为我的思维都是从后端出发的,所以好像没感觉到什么 需要 获得 dom 来取得里面数据的场景。
比方说你想拿到「某个标签的内容」,按我的自然思路是,这个内容应该也是某组数据渲染出来的,那我直接用数据不就好了,如果不存在,那是这个组件有问题,我得改这个组件让它能提供一个暴露数据的接口
如果是想「修改另一个节点的状态」,那也应该是节点 /组件各司其职,提供一个 emit 来让别人通知节点自己变更状态。这个思路跟桌面 GUI 是一样的,qt 那的 signal/slots 跟 vue 的 emits 基本上是同一种东西
-------
可能也是写过桌面 GUI 的原因,我是很忌惮直接去改变非自控 dom 的状态的,因为在桌面 GUI 程序里这样写是大忌——很容易搞不清自己当前在哪个线程里。跨线程去操作 ui 组件容易引发访问违例、死锁、竞争等各种各样奇怪的问题,所以传统桌面 GUI 的程序一律在使用各种事件去通知组件重绘自己的内容。这跟传统 js 出来的「宏状态」一把梭,一个位置掌控全页面 dom 的思路就很不一样。我倒是「天生更适应现代的前端框架」