Vue2中变量监听与默认值设置的最佳实践?

vue2设置变量监听的方法 , 如果变量为undefined和null和"" , 就立刻变为[],处理之后再执行之后的代码,由于监听和组件传参有时间差 , 导致接下来的代码 , 可能变量还未生效如何处理 , 最好能封装或者使用极其简单 , 想用在各个地方

尝试监听 , 或者写额外组件来处理 , 会有时间差

阅读 917
1 个回答

在很早之前,如果是自定义组件的 props 值,我一般会设置为 undefined 来作为初始值,这样可以应用 propsdefault 默认值,这样就不会有设置 “无效值” 引发的一些问题(但创建属性时会有丢失响应式的问题)。


在现阶段按照我的开发习惯已经逐渐避免使用一个全局的兜底方案,而是在具体的业务代码中按照实际情况去做业务处理,比如说使用 isNil() 来判断空值,或者使用 ??= 或者 ?? 在具体业务中做兜底。

避免在某一处通过一些 hack 的方法,隐式的修改了变量无效值,使得整个 debug 过程变得极其复杂。

比如说你现在把 nullundefined'' 都统一处理成 []。但是某一天业务变更了后允许传入 '' 了。
那其他同时在外部做 '' 的赋值被你的处理方法自动处理成 [],他都不知道为什么会变更掉。
或者某一天你修改了你的设置默认的方法,把 0 也列为无效值之中,那么牵扯面就会变得极其广泛,导致大面积的接口请求异常。


但这些也只是笼统的去说明一些问题隐患,所以还需要OP你补充你具体想要问的问题点是什么,是一些什么场景下的问题。

比如说常见的,表单不像声明每一个属性的默认值,直接使用了 formData: {} 导致的问题。
还是说一些自定义组件的 props 值缺失,但是需要应用一个默认值。
还是说一些业务场景下,未显式声明的变量值可能需要下级的组件 emit 自定义时间之后,使用变更后的值来触发查询。

不同的业务场景处理的方式也有会区别。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题