对比下以下两个代码片段,说明哪个更好?
片段一:
// 获取uuid
get_uuid (state) {
// 解密uuid
return (state.uuid && secret.decrypt(state.uuid)) || (sessionStorage.getItem('uuid') && secret.decrypt(sessionStorage.getItem('uuid'))) || null
}
片段二:
// 获取uuid
get_uuid (state) {
// 解密uuid
return secret.decrypt(state.uuid) || secret.decrypt(sessionStorage.getItem('uuid')) || null
}
我们发现片段一比片段二多做了一点工作:在secret.decrypt()之前对传入的参数做校验,判断该参数是否存在。这样能保证在参数为空值时get_uuid能正确返回最后的那个nul,否则【片段二】state.uuid为空值时secret.decrypt无法处理该空值参数,从而报语法错误。
在vue中报语法语法错误,不会给你指出第几行!这样就存在很大的隐患,一旦项目复杂点,报的语法错误就很难找到它的位置。
这是项目过程中的经验教训。记录一下。当时做的是游客浏览作品页,游客是没有uuid,登录才有uuid,我就用了上文的片段二,结果我整个页面都不显示了。如下图

本文通过对比两个代码片段,强调了在调用方法前进行参数存在的校验是必要的,以避免因空值导致的语法错误。作者分享了在Vue项目中因忽略参数校验引发的页面崩溃问题,提醒开发者在编写代码时要注重错误处理和预防潜在问题,以提高代码的健壮性。

被折叠的 条评论
为什么被折叠?



