@
2i2Re2PLMaDnghL 说的好,你指出了两个看上去可行的替代方案。
现在我顺着之前的例子继续延伸,在全局 request 方法中通常需要添加一个异常拦截器,我希望在状态码异常时调用 notification 弹出错误消息(包涵额外组件)并返回 Promise.reject 。
按照你 notifiable 组件的逻辑,我是不是要将这个全局处理定义为.vue 文件?
并且我在什么地方调用 request 方法,就要在什么地方导入并初始化这个组件。
如果没有发生请求异常,那么在运行时的 notifiable 组件初始化产生的算力开销是无意义的。
这合理吗?这不合理。
所以在这种场景下,良好的解决方案应该使用你说的 sexpr ,也就是半结构化表达式来创建 VNode ,并手动将 VNode 挂载到真实 DOM 上(这里手动挂载的操作在 react 中也是一样的)。
能做到,但是很麻烦且难以阅读。
我写过两年以上的 vue ,一直在尝试解决这个问题,但是没有成功,只能通过手动创建 VNode 来妥协。
这是一种回归本源的操作,就好像某一个高级语言你写着写着,忽然发现某一个功能无法实现,你只能通过手敲二进制码来曲线救国,这样的缺陷要是放在一个语言中,我完全可以将其定义为图灵不完备。
这是在 template 方案设计之初就注定无法弥补的缺陷。
缺陷就是缺陷,大可不必那么倔。