<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 父子組件之間的通信 # 一般開發流程 - 比如在一個頁面中 我們從服務器請求到了很多的數據 - 其中一部分數據 并非使我們整個頁面的大組件來展示的 而是需要下面的子組件進行展示 - 這個時候 并不會讓子組件再次發送一個網絡強求 而是直接讓大組件(父組件將數據傳遞給小組件(子組件) - 因為 向服務器發送網路請求 對服務器壓力是很大的 # 如何進行父子組件間的通信呢? 官方解釋: - 通過props向子組件傳遞數據 props是properties(屬性)單詞的縮寫 - 通過事件向父組件發送消息 (emit) ![](https://img.kancloud.cn/6f/d9/6fd97968594a31f253877017476ec33e_459x202.png) 父組件通過----->props----->子組件 子組件---->$emit 自定義事件--->傳遞給父組件 ``` <pre class="calibre13">``` 父組件id是 app 子組件id是cpn 在父組件中傳值給子組件 <span class="token"><</span>cpn v<span class="token">-</span>bind<span class="token1">:</span>cmovies <span class="token">=</span> <span class="token4">"movies"</span><span class="token">></span><span class="token"><</span><span class="token">/</span>cpn<span class="token">></span> 子組件定義屬性props<span class="token1">:</span><span class="token1">[</span><span class="token4">'cmovies'</span><span class="token1">]</span> cmovies里面就有了數據 第一種方式: 父組件定義數據movies 子組件進行綁定 即可傳值到子組件 第二種方式: 在子組件中定義props屬性:props<span class="token1">:</span><span class="token1">[</span><span class="token4">'cmessage'</span><span class="token1">]</span> 在父組件中定義數據 message 在子組件模板中 <span class="token3">增加data</span><span class="token1">(</span><span class="token1">)</span><span class="token1">{</span> <span class="token2">return</span> <span class="token1">{</span><span class="token1">}</span><span class="token1">}</span> 子模板 中使用 <span class="token1">{</span><span class="token1">{</span>cmessage<span class="token1">}</span><span class="token1">}</span>也可以拿到父組建的值 ``` ``` # 父傳子 ``` <pre class="calibre13">``` <span class="token"><</span><span class="token">!</span><span class="token5">DOCTYPE</span> html<span class="token">></span> <span class="token"><</span>html lang<span class="token">=</span><span class="token4">"en"</span><span class="token">></span> <span class="token"><</span>head<span class="token">></span> <span class="token"><</span>meta charset<span class="token">=</span><span class="token4">"UTF-8"</span><span class="token">></span> <span class="token"><</span>title<span class="token">></span>Title<span class="token"><</span><span class="token">/</span>title<span class="token">></span> <span class="token"><</span><span class="token">/</span>head<span class="token">></span> <span class="token"><</span>body<span class="token">></span> <span class="token"><</span>div id<span class="token">=</span><span class="token4">"app"</span><span class="token">></span> <span class="token"><</span><span class="token">!</span><span class="token">--</span> 傳遞數據<span class="token">--</span><span class="token">></span> <span class="token"><</span>cpn <span class="token1">:</span>cmovies<span class="token">=</span><span class="token4">"movies"</span> <span class="token1">:</span>cmessage<span class="token">=</span><span class="token4">"message"</span><span class="token">></span><span class="token"><</span><span class="token">/</span>cpn<span class="token">></span> <span class="token"><</span><span class="token">/</span>div<span class="token">></span> <span class="token"><</span>template id<span class="token">=</span><span class="token4">"cpn"</span><span class="token">></span> <span class="token"><</span>div<span class="token">></span> <span class="token1">{</span><span class="token1">{</span>cmovies<span class="token1">}</span><span class="token1">}</span> <span class="token1">{</span><span class="token1">{</span>cmessage<span class="token1">}</span><span class="token1">}</span> <span class="token"><</span><span class="token">/</span>div<span class="token">></span> <span class="token"><</span><span class="token">/</span>template<span class="token">></span> <span class="token"><</span>script src<span class="token">=</span><span class="token4">"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"</span><span class="token">></span><span class="token"><</span><span class="token">/</span>script<span class="token">></span> <span class="token"><</span><span class="token">!</span><span class="token">--</span> 父組件向子組件傳遞數據<span class="token">--</span><span class="token">></span> <span class="token"><</span>script<span class="token">></span> <span class="token2">const</span> cpn <span class="token">=</span> <span class="token1">{</span> <span class="token6">//創建子組件</span> template<span class="token1">:</span> <span class="token4">'#cpn'</span><span class="token1">,</span> <span class="token6">//props:['cmovies','cmessage'], //接收父組件傳值 數組形式</span> <span class="token6">//下面演示對象傳遞的形式</span> props<span class="token1">:</span><span class="token1">{</span> cmessage<span class="token1">:</span> <span class="token1">{</span> type<span class="token1">:</span> String<span class="token1">,</span> <span class="token2">default</span><span class="token1">:</span> <span class="token4">'aaaaa'</span> <span class="token1">}</span><span class="token1">,</span> cmovies<span class="token1">:</span> <span class="token1">{</span> type<span class="token1">:</span> Array<span class="token1">,</span> <span class="token2">default</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token2">return</span> <span class="token1">[</span><span class="token1">]</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token2">const</span> app <span class="token">=</span> <span class="token2">new</span> <span class="token3">Vue</span><span class="token1">(</span><span class="token1">{</span> <span class="token6">//父組件</span> el<span class="token1">:</span> <span class="token4">'#app'</span><span class="token1">,</span> data<span class="token1">:</span> <span class="token1">{</span> message<span class="token1">:</span> <span class="token4">"測試數據"</span><span class="token1">,</span> movies<span class="token1">:</span> <span class="token1">[</span><span class="token4">'哪吒'</span><span class="token1">,</span><span class="token4">'海賊王'</span><span class="token1">,</span><span class="token4">'斗破蒼穹'</span><span class="token1">,</span><span class="token4">'斗羅大陸'</span><span class="token1">]</span> <span class="token1">}</span><span class="token1">,</span> components<span class="token1">:</span> <span class="token1">{</span> <span class="token6">//注冊組件</span> cpn <span class="token1">}</span> <span class="token1">}</span><span class="token1">)</span> <span class="token"><</span><span class="token">/</span>script<span class="token">></span> <span class="token"><</span><span class="token">/</span>body<span class="token">></span> <span class="token"><</span><span class="token">/</span>html<span class="token">></span> ``` ``` # 子-->父通信 ``` <pre class="calibre13">``` <span class="token"><</span><span class="token">!</span><span class="token5">DOCTYPE</span> html<span class="token">></span> <span class="token"><</span>html lang<span class="token">=</span><span class="token4">"en"</span><span class="token">></span> <span class="token"><</span>head<span class="token">></span> <span class="token"><</span>meta charset<span class="token">=</span><span class="token4">"UTF-8"</span><span class="token">></span> <span class="token"><</span>title<span class="token">></span>Title<span class="token"><</span><span class="token">/</span>title<span class="token">></span> <span class="token"><</span><span class="token">/</span>head<span class="token">></span> <span class="token"><</span>body<span class="token">></span> <span class="token"><</span><span class="token">!</span><span class="token">--</span>父組件模板<span class="token">--</span><span class="token">></span> <span class="token"><</span>div id<span class="token">=</span><span class="token4">"app"</span><span class="token">></span> <span class="token"><</span><span class="token">!</span><span class="token">--</span> 對事件進行監聽<span class="token">--</span><span class="token">></span> <span class="token"><</span>cpn @itemclick<span class="token">=</span><span class="token4">"cpnClick"</span><span class="token">></span><span class="token"><</span><span class="token">/</span>cpn<span class="token">></span> <span class="token"><</span><span class="token">/</span>div<span class="token">></span> <span class="token"><</span><span class="token">!</span><span class="token">--</span>子組件模板<span class="token">--</span><span class="token">></span> <span class="token"><</span>template id<span class="token">=</span><span class="token4">"cpn"</span><span class="token">></span> <span class="token"><</span>div<span class="token">></span> <span class="token"><</span>button v<span class="token">-</span><span class="token2">for</span><span class="token">=</span><span class="token4">"item in infos"</span> @click<span class="token">=</span><span class="token4">"btnClick(item)"</span><span class="token">></span><span class="token1">{</span><span class="token1">{</span>item<span class="token1">.</span>name<span class="token1">}</span><span class="token1">}</span><span class="token"><</span><span class="token">/</span>button<span class="token">></span> <span class="token"><</span><span class="token">/</span>div<span class="token">></span> <span class="token"><</span><span class="token">/</span>template<span class="token">></span> <span class="token"><</span>script src<span class="token">=</span><span class="token4">"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"</span><span class="token">></span><span class="token"><</span><span class="token">/</span>script<span class="token">></span> <span class="token"><</span>script<span class="token">></span> <span class="token6">// 1 子組件</span> <span class="token2">const</span> cpn <span class="token">=</span> <span class="token1">{</span> template<span class="token1">:</span> <span class="token4">'#cpn'</span><span class="token1">,</span> <span class="token3">data</span><span class="token1">(</span><span class="token1">)</span><span class="token1">{</span> <span class="token2">return</span><span class="token1">{</span> infos<span class="token1">:</span> <span class="token1">[</span> <span class="token1">{</span>id<span class="token1">:</span> <span class="token4">'1'</span><span class="token1">,</span>name<span class="token1">:</span> <span class="token4">'熱門推薦'</span> <span class="token1">}</span><span class="token1">,</span> <span class="token1">{</span>id<span class="token1">:</span> <span class="token4">'2'</span><span class="token1">,</span>name<span class="token1">:</span> <span class="token4">'手機數碼'</span> <span class="token1">}</span><span class="token1">,</span> <span class="token1">{</span>id<span class="token1">:</span> <span class="token4">'3'</span><span class="token1">,</span>name<span class="token1">:</span> <span class="token4">'家用家電'</span> <span class="token1">}</span><span class="token1">,</span> <span class="token1">{</span>id<span class="token1">:</span> <span class="token4">'4'</span><span class="token1">,</span>name<span class="token1">:</span> <span class="token4">'電腦辦公'</span> <span class="token1">}</span> <span class="token1">]</span> <span class="token1">}</span> <span class="token1">}</span><span class="token1">,</span> methods<span class="token1">:</span> <span class="token1">{</span> <span class="token3">btnClick</span><span class="token1">(</span>item<span class="token1">)</span> <span class="token1">{</span> <span class="token6">//console.log(item)</span> <span class="token6">//itemClick 發射事件的名稱 item 是發送的參數</span> <span class="token2">this</span><span class="token1">.</span><span class="token3">$emit</span><span class="token1">(</span><span class="token4">'itemclick'</span><span class="token1">,</span>item<span class="token1">)</span> <span class="token6">//自定義事件</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token6">// 2父組件</span> <span class="token2">const</span> app <span class="token">=</span> <span class="token2">new</span> <span class="token3">Vue</span><span class="token1">(</span><span class="token1">{</span> el<span class="token1">:</span> <span class="token4">'#app'</span><span class="token1">,</span> data<span class="token1">:</span> <span class="token1">{</span> message<span class="token1">:</span> <span class="token4">"測試數據"</span> <span class="token1">}</span><span class="token1">,</span> methods<span class="token1">:</span> <span class="token1">{</span> <span class="token3">cpnClick</span><span class="token1">(</span>item<span class="token1">)</span> <span class="token1">{</span> console<span class="token1">.</span><span class="token3">log</span><span class="token1">(</span><span class="token4">'父組件接收-->'</span><span class="token">+</span>item<span class="token1">.</span>name<span class="token1">)</span> <span class="token1">}</span> <span class="token1">}</span><span class="token1">,</span> <span class="token6">//注冊子組件</span> components<span class="token1">:</span> <span class="token1">{</span> cpn <span class="token1">}</span> <span class="token1">}</span><span class="token1">)</span> <span class="token"><</span><span class="token">/</span>script<span class="token">></span> <span class="token"><</span><span class="token">/</span>body<span class="token">></span> <span class="token"><</span><span class="token">/</span>html<span class="token">></span> ``` ``` # 子組件訪問父組件的內容 ``` <pre class="calibre14">``` <span class="token"><</span><span class="token">!</span><span class="token5">DOCTYPE</span> html<span class="token">></span> <span class="token"><</span>html lang<span class="token">=</span><span class="token4">"en"</span><span class="token">></span> <span class="token"><</span>head<span class="token">></span> <span class="token"><</span>meta charset<span class="token">=</span><span class="token4">"UTF-8"</span><span class="token">></span> <span class="token"><</span>title<span class="token">></span>Title<span class="token"><</span><span class="token">/</span>title<span class="token">></span> <span class="token"><</span><span class="token">/</span>head<span class="token">></span> <span class="token"><</span>body<span class="token">></span> <span class="token"><</span>div id<span class="token">=</span><span class="token4">"app"</span><span class="token">></span> <span class="token1">{</span><span class="token1">{</span>message<span class="token1">}</span><span class="token1">}</span> <span class="token"><</span>cpn<span class="token">></span><span class="token"><</span><span class="token">/</span>cpn<span class="token">></span> <span class="token"><</span><span class="token">/</span>div<span class="token">></span> <span class="token"><</span>template id<span class="token">=</span><span class="token4">"cpn"</span><span class="token">></span> <span class="token"><</span>div<span class="token">></span> <span class="token"><</span>h1<span class="token">></span>這是子組件標題<span class="token"><</span><span class="token">/</span>h1<span class="token">></span> <span class="token"><</span>p<span class="token">></span>這是子組件內容<span class="token"><</span><span class="token">/</span>p<span class="token">></span> <span class="token"><</span>button @click<span class="token">=</span><span class="token4">"btnClick"</span><span class="token">></span>獲取父組件對象<span class="token"><</span><span class="token">/</span>button<span class="token">></span> <span class="token"><</span><span class="token">/</span>div<span class="token">></span> <span class="token"><</span><span class="token">/</span>template<span class="token">></span> <span class="token"><</span>script src<span class="token">=</span><span class="token4">"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"</span><span class="token">></span><span class="token"><</span><span class="token">/</span>script<span class="token">></span> <span class="token"><</span>script<span class="token">></span> <span class="token2">const</span> app <span class="token">=</span> <span class="token2">new</span> <span class="token3">Vue</span><span class="token1">(</span><span class="token1">{</span> el<span class="token1">:</span> <span class="token4">'#app'</span><span class="token1">,</span> data<span class="token1">:</span> <span class="token1">{</span> message<span class="token1">:</span> <span class="token4">"測試數據"</span> <span class="token1">}</span><span class="token1">,</span> components<span class="token1">:</span> <span class="token1">{</span> cpn<span class="token1">:</span><span class="token1">{</span> template<span class="token1">:</span><span class="token4">'#cpn'</span><span class="token1">,</span> methods<span class="token1">:</span> <span class="token1">{</span> <span class="token3">btnClick</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> console<span class="token1">.</span><span class="token3">log</span><span class="token1">(</span><span class="token2">this</span><span class="token1">)</span><span class="token1">;</span> <span class="token6">//console.log(this.$parent.message);</span> console<span class="token1">.</span><span class="token3">log</span><span class="token1">(</span><span class="token2">this</span><span class="token1">.</span>$root<span class="token1">.</span>message<span class="token1">)</span><span class="token1">;</span> <span class="token6">//建議采用這種方式 因為上面那種方式 如果嵌套多個組件 如果找不到name值 可能會報錯</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token1">}</span> <span class="token1">}</span><span class="token1">)</span> <span class="token"><</span><span class="token">/</span>script<span class="token">></span> <span class="token"><</span><span class="token">/</span>body<span class="token">></span> <span class="token"><</span><span class="token">/</span>html<span class="token">></span> ``` ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看