您需要反轉控制。
./modules/home/index.js
const homeModel1 =() => {
//...
}
const homeModel2 =() => {
//...
}
module.exports = Object.assign({}, { homeModel1, homeModel2 })
1.一種對象將被導出以下形狀:
{
homeModel1:() => {},
homeModel2:() => {}
}
2.當增加一個新的模型,只需將其添加或導入到該文件中,然後將其添加到導出對象。
./modules/index.js
import { homeModels } from './modules/home'
import { aboutModels } from './modules/about'
import { contactModels } from './modules/contact'
module.exports = Object.assign({}, { homeModels, aboutModels, contactModels })
- 這些模型解構出來,然後導出爲一個新對象的方法。
- 同樣,相同形狀的物體會與您一起培養的所有模型一起導出,從而爲它們帶來所有依賴關係。
別的地方
import modules from './modules'
const query = modules.homeModels.homeModel1()
獎勵: 澄清,Object.assign({}, obj1, obj2)
創建具有設置爲對象的原型樣機一個新的對象,並融合了性能和OBJ1的方法和obj2的。在這種簡單的形式中,它基本上與const obj = {}
相同。
更高級一點,是Object.assign({}, { obj1, obj2 })
,它使新對象上的obj1和obj2屬性。你可以做一些簡單的測試來感受數據結構。
我們也使用了一些解構。如果您遇到問題需要進行正確排列,您應該查看這些方面以及如何將它們導入到文件中。例如,import obj1 from './modules'
將從./modules中提取整個對象,但是import { obj1 } from './modules'
將從其拉入的對象中解構obj1,因此obj1是對象的方法/屬性。
做一些研究控制和依賴注入的反演。
我的第一個問題是,你爲什麼要構建你的文件,你必須這樣做?我的建議是重新組織你的文件,但是你沒有做太多的工作。在這種情況下,爲什麼需要從一個文件訪問所有模型? – loganfsmyth
設置你的目錄樹並以其他方式放置你的文件,使用更少的子目錄/更接近使用它的代碼? – Pac0
根據我的經驗,爲此設置一個解決方法總是會比其價值更麻煩。 –