Javascript 将导入的对象作为道具从父对象传递给子对象与在这些子对象中导入该对象的权衡是什么?

Javascript 将导入的对象作为道具从父对象传递给子对象与在这些子对象中导入该对象的权衡是什么?,javascript,vue.js,vuejs2,components,Javascript,Vue.js,Vuejs2,Components,我有一个名为TimeHelper的助手对象(用于与时间相关的事物)。我需要对顶级父组件及其几个子组件中的日期和时间进行大量处理 我想知道在顶级父级中导入一次TimeHelper,然后将其作为道具传递给子级,与在每个需要它的组件中导入TimeHelper相比,会有什么折衷 编辑:回答Nicholas的以下问题: 这个物体会改变吗? 将来可能会添加更多方法,但导入后不会发生变异 它的任何属性是否来自某个组件的状态或道具? 不。独立对象和处理时间和日期的助手方法。这是一个基于观点的答案,但根据我的经验

我有一个名为TimeHelper的助手对象(用于与时间相关的事物)。我需要对顶级父组件及其几个子组件中的日期和时间进行大量处理

我想知道在顶级父级中导入一次TimeHelper,然后将其作为道具传递给子级,与在每个需要它的组件中导入TimeHelper相比,会有什么折衷

编辑:回答Nicholas的以下问题:


这个物体会改变吗? 将来可能会添加更多方法,但导入后不会发生变异

它的任何属性是否来自某个组件的状态或道具?
不。独立对象和处理时间和日期的助手方法。

这是一个基于观点的答案,但根据我的经验,每次你可以降低接口的复杂性(在本例中是组件的道具),你都会感觉更好

六个月后,当您需要实例化另一个小部件组件时,您不必问自己:“这东西又是什么道具?等等,
timeHelper是什么?
?在其他地方使用它……我会复制它。”

如果widget组件直接导入了helper,那么您需要担心的道具就少了一个

如果确实应该配置组件的帮助器,则不是这样。例如,如果
timeHelper
,则是一个日期格式化函数,不同的实例需要不同的行为

请注意,如果模板中需要帮助器,则可以创建一个。例如:

dateshared:{{createdAt|formatDate}

此对象是否会更改?它的属性是否来自某个组件的状态或道具?这与我的想法是一致的:“每次你可以降低接口的复杂性(在本例中是组件的道具),你就更好了。”