Vue


组件传值 provide 和 inject

<p>当需要从父组件向子组件传递数据时,我们使用 props。 但有一些深度嵌套的组件,而深层的子组件只需要父组件的部分内容,如果仍然将 prop 沿着组件链逐级传递下去,可能会很麻烦。 对于这种情况,可以使用 provide 和 inject。 无论组件层次结构有多深,父组件都可以作为其所有子组件的依赖提供者。 这个特性有两个部分:父组件有一个 provide 选项来提供数据,子组件有一个 inject 选项来开始使用这些数据。</p> <pre><code class="language-javascript">App.vue &amp;lt;template&amp;gt;   &amp;lt;Parent&amp;gt;&amp;lt;/Parent&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { provide } from &amp;quot;vue&amp;quot;; import Parent from &amp;quot;@/components/Parent.vue&amp;quot;; provide(&amp;quot;name&amp;quot;, &amp;quot;Andy&amp;quot;); &amp;lt;/script&amp;gt; </code></pre> <pre><code class="language-javascript">Parent.vue &amp;lt;template&amp;gt;     &amp;lt;Child&amp;gt;&amp;lt;/Child&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { inject } from &amp;quot;vue&amp;quot;; import Child from &amp;quot;@/components/Child.vue&amp;quot;; let appinfo = inject(&amp;quot;name&amp;quot;); console.log('parent:', appinfo); &amp;lt;/script&amp;gt; </code></pre> <pre><code class="language-javascript">Child.vue &amp;lt;template&amp;gt;&amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { inject } from &amp;quot;vue&amp;quot;; let appinfo = inject(&amp;quot;name&amp;quot;); console.log('child:', appinfo); &amp;lt;/script&amp;gt; </code></pre> <p>App 向 Parent 和 Child 传值</p>

页面列表

ITEM_HTML