什么样的情况下推荐直接赋值,什么情况下推荐使用getter
时间: 2024-04-14 18:31:24 浏览: 60
推荐直接赋值的情况是当你只需要简单地读取或修改store中的状态时。如果你只是需要获取或修改一个简单的状态值,没有其他的计算逻辑或数据筛选需求,那么直接使用store.state.num进行赋值和读取是足够的。
推荐使用Getter的情况包括:
1. 需要对store中的状态进行复杂的计算:如果你需要对多个状态进行计算,或者需要进行一些复杂的逻辑操作,那么使用Getter可以将这些计算逻辑封装起来,使得代码更加清晰和可维护。
2. 多个组件需要共享相同的计算逻辑:如果多个组件需要共享相同的计算逻辑,例如多个组件需要根据一些条件筛选出特定的数据,那么使用Getter可以避免在每个组件中重复编写相同的代码,提高代码的复用性和可维护性。
3. 需要对数据进行筛选、过滤、排序等操作:如果你需要对store中的数据进行筛选、过滤、排序等操作,Getter可以帮助你封装这些操作,使得组件只需要关注显示数据的逻辑,而不需要关注数据的具体处理过程。
总之,如果你只需要简单地获取或修改一个状态值,直接赋值即可。而在需要进行复杂计算、共享计算逻辑或对数据进行筛选等情况下,推荐使用Getter来实现。
相关问题
为什么不推荐使用beanutils
BeanUtils 是 Apache Commons BeanUtils 库提供的一个工具类,可以将 Java Bean 对象之间相同名称的属性值进行拷贝。虽然 BeanUtils 可以为我们省去很多手动编写属性拷贝的代码,但这个工具类也存在一些问题,不推荐使用 BeanUtils 的原因如下:
1. 性能问题:
BeanUtils 是通过反射机制实现属性的拷贝,在大量数据拷贝的情况下,反射操作的频率造成了非常大的性能消耗。相比之下,手动编写属性拷贝代码,使用 setter 和 getter 方法可以获得更好的性能表现。
2. 不支持类型转换
另一个问题是当源对象和目标对象的属性类型不一样时,BeanUtils 无法进行类型转换。仅仅会尝试复制同名属性的值,如果源对象的属性类型和目标对象的属性类型不一致,就不得不手动进行类型转换或者使用其他工具库来做转换。
3. 不支持多层级嵌套对象的拷贝
BeanUtils 无法对多层级嵌套对象的属性进行拷贝,这意味着,在处理带有嵌套属性的对象时,必须手动创建一个拷贝方法或者使用其他工具库来实现深层对象的拷贝。
因此,为了提高程序性能和代码可读性,不推荐使用 BeanUtils 进行类之间属性值的拷贝。
vue3中vuex可以直接使用store.state.num进行修改赋值和读取,那么getter存在的意义是什么
在Vue 3中,Vuex的getter存在的意义是为了对store中的状态进行计算或筛选,并将计算结果或筛选后的数据返回给组件使用。
Getter可以被认为是store的计算属性,它接收state作为第一个参数,可以访问state中的数据,并可以接收其他getter作为第二个参数。Getter的返回值会根据其依赖的数据发生变化而进行缓存,只有当依赖的数据发生变化时,Getter才会重新计算。
使用Getter可以实现多个组件共享相同的计算逻辑,避免在多个组件中重复编写相同的计算代码。Getter还可以帮助我们对数据进行筛选、过滤、排序等操作,使得组件只需要关注显示数据的逻辑,而不需要关注数据的具体处理过程。
此外,Getter还可以在组件中通过mapGetters辅助函数进行映射,使得在组件中可以直接使用getter的结果,简化了组件的代码。
总结来说,Getter在Vue 3中的存在意义是为了方便对store中的状态进行计算和筛选,并将结果返回给组件使用,同时也提高了代码的可维护性和复用性。