vue官方文檔解釋: 這對選項需要壹起使用,以允許壹個祖先組件向其所有子孫後代註入壹個依賴,不論組件層次有多深,並在起上下遊關系成立的時間裏始終生效。
和prop類似,那為什麽還需要 provide / inject 呢?
因為在現實的項目中,我的壹個組件嵌套著好幾層組件,如果運用prop壹層層的嵌套傳遞,就非常的麻煩。而 provide / inject 就解決了這個問題,只要在頂層父級 provide 裏聲明對象或方法,那麽下壹層級無論多深都能夠通過 inject 來訪問到 provide 的數據。
1.無法追蹤數據的來源
在任意層級都能訪問導致數據追蹤比較困難,不知道是哪壹個層級聲明了這個或者不知道哪壹層級或若幹個層級使用了。
2.導致組件間的耦合
它將導致組件於組件間的耦合,使得組件復用性受到影響。