如果一个.vue文件中接收到的ctrlShopCart参数,如何在 service 层使用?

来源:16-25 作业:筛选出版社实现复杂图书搜索

慕粉3946981

2023-09-07

.vue文件中接收到父组件传递的 props

// 获取父组件传递的 ctrlShopCart 参数
const { ctrlShopCart } = defineProps<{
  ctrlShopCart: (isShow: boolean) => void
}>()

这个vue文件的逻辑写在一个 service 的 ts 文件中,且该ts文件中部分函数依赖 ctrlShopCart 参数,有没有什么办法解决?(不想把ts文件中依赖的ctrlShopCart函数的内容移到这个vue文件来,因为在ts文件中依赖ctrlShopCart参数的函数还使用了ts文件中其他的函数,如果为了解决这个问题而移动太多函数进来有些乱)

写回答

1回答

keviny79

2023-09-07

状态维持有两种,方式1:跨页面或跨业务一般用 pinia 来保持。方式2:如果是父子组件,一般用defineProps 传递式解决 ,defineProps 是 vue3.x 提供的父组件和一个或者个子组件之间通讯的方式,,如果用这种父子传递模式和i条件判断组件隐藏或显示,还要移到 service ,编码和维护会更麻烦,所以本章写法已经是最优的写法了。 如果想放弃vue 提供的这种defineProps 父子传递模式,可以参照本课程第19章 19-11 中用到的pinia 传参模式。但其实都可以。

0
1
慕粉3946981
那还是算了,我把依赖的函数移到vue文件中
2023-09-07
共1条回复

前端高手养成计划-从前端到后端,全栈开发大型项目

从纯前端到“真正懂后端的前端”

215 学习 · 134 问题

查看课程