vue2设置变量监听的方法 , 如果变量为undefined和null和"" , 就立刻变为[],处理之后再执行之后的代码,由于监听和组件传参有时间差 , 导致接下来的代码 , 可能变量还未生效如何处理 , 最好能封装或者使用极其简单 , 想用在各个地方
尝试监听 , 或者写额外组件来处理 , 会有时间差
vue2设置变量监听的方法 , 如果变量为undefined和null和"" , 就立刻变为[],处理之后再执行之后的代码,由于监听和组件传参有时间差 , 导致接下来的代码 , 可能变量还未生效如何处理 , 最好能封装或者使用极其简单 , 想用在各个地方
尝试监听 , 或者写额外组件来处理 , 会有时间差
11 回答1.2k 阅读
4 回答566 阅读✓ 已解决
3 回答854 阅读
1 回答706 阅读
2 回答568 阅读
1 回答673 阅读
599 阅读
在很早之前,如果是自定义组件的
props值,我一般会设置为undefined来作为初始值,这样可以应用props的default默认值,这样就不会有设置 “无效值” 引发的一些问题(但创建属性时会有丢失响应式的问题)。在现阶段按照我的开发习惯已经逐渐避免使用一个全局的兜底方案,而是在具体的业务代码中按照实际情况去做业务处理,比如说使用 isNil() 来判断空值,或者使用 ??= 或者 ?? 在具体业务中做兜底。
避免在某一处通过一些
hack的方法,隐式的修改了变量无效值,使得整个 debug 过程变得极其复杂。比如说你现在把
null、undefined、''都统一处理成[]。但是某一天业务变更了后允许传入''了。那其他同时在外部做
''的赋值被你的处理方法自动处理成[],他都不知道为什么会变更掉。或者某一天你修改了你的设置默认的方法,把
0也列为无效值之中,那么牵扯面就会变得极其广泛,导致大面积的接口请求异常。但这些也只是笼统的去说明一些问题隐患,所以还需要OP你补充你具体想要问的问题点是什么,是一些什么场景下的问题。
比如说常见的,表单不像声明每一个属性的默认值,直接使用了
formData: {}导致的问题。还是说一些自定义组件的
props值缺失,但是需要应用一个默认值。还是说一些业务场景下,未显式声明的变量值可能需要下级的组件
emit自定义时间之后,使用变更后的值来触发查询。不同的业务场景处理的方式也有会区别。