欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue基礎(chǔ)知識--axios合并請求和slot

 更新時間:2020年06月04日 10:16:15   作者:許小花花  
這篇文章主要介紹了vue中的axios和slot,文中代碼非常詳細,對大家的工作學(xué)習(xí)有所幫助,感興趣的朋友可以參考下

一、axios合并請求

export default {
  data(){
    return {}
  },
  created(){
    function getMsg(res1,res2){
      console.log(res1)
      console.log(res2)
    }
    this.$axios.all([
        this,axios.post('URL','key=value'),
        this.axios.get('URL')
      ])
      .then(this.$axios.spread(getMsg)) //分發(fā)響應(yīng)
      .catch(err => { 
        console.log(err)
      })
  }
}

這樣可以實現(xiàn)發(fā)送兩個請求,只有所有都成功,才算是成功。只要有一個失敗,就算是失敗。

二、插槽slot

1.基本用法

插槽的出現(xiàn)使得我們可以在使用子組件時在子組件內(nèi)新增內(nèi)容,而不僅僅是簡單的使用,呈現(xiàn)出多樣化的子組件。

<navigation-link>
 Your Profile
</navigation-link>

當我們使用子組件navigation時,在子組件中寫入一些內(nèi)容,但是如果我們子組件的template中沒有一個插槽slot,那么我們寫入的Your Profile沒有的地方放,子組件怎么知道要放在哪里呢,不知道放在哪里,所以它就干脆不放了,會把寫的內(nèi)容拋棄,大家就當無事發(fā)生過,子組件里怎么寫,它就怎么呈現(xiàn),全然不顧你在使用時寫入的東西,當做沒有看見。
但是如果我們在子組件中寫入了一個插槽slot,那么我們傳入的內(nèi)容將會被在這個插槽處呈現(xiàn)。像下面這樣

<a v-bind:href="url" rel="external nofollow" rel="external nofollow" class="nav-link">
 <slot></slot>
</a>

渲染出來的結(jié)果將是:

<a v-bind:href="url" rel="external nofollow" rel="external nofollow"  class="nav-link">
  Your Profile
</a>

2.具名插槽

有時候,我們需要在子組件中放置多個內(nèi)容,那么你只有一個slot,它只能全部放在這里(其實我也不知道是不是這樣我沒有試過),如果你有多個slot,它怎么知道哪個內(nèi)容要放在哪個slot,按順序放嗎?不是的(其實我也不知道是不是)。正確的做法就是使用具名插槽。所謂具名插槽就是一個帶有nameslot。也就是下面這樣

<!--base-layout.vue-->
<div class="container">
 <header>
  <slot name="header"></slot>
 </header>
 <main>
  <slot></slot> <!--默認插槽-->
 </main>
 <footer>
  <slot name="footer"></slot>
 </footer>
</div>

然后在使用上面這個子組件時像下面這樣

<base-layout>
 <template slot="header">
  <h1>Here might be a page title</h1>
 </template>

 <p>A paragraph for the main content.</p>
 <p>And another one.</p>

 <template slot="footer">
  <p>Here's some contact info</p>
 </template>
</base-layout>

在使用時,通過一個具有slot屬性的標簽,屬性值對應(yīng)slotname,將內(nèi)容放到子組件的相應(yīng)位置上去。

我們注意到,里面有一個沒有指定nameslot,它就是默認插槽。所有在使用子組件時傳入的東西,只要沒有指定slot='slot的name',就都會放在這里。

我們還注意到,這里用的一個叫做template的標簽,一定要用它嗎?不是的,也可以直接放在h1或者p上面,像下面這樣

<base-layout>
 <h1 slot="header">Here might be a page title</h1>

 <p>A paragraph for the main content.</p>
 <p>And another one.</p>

 <p slot="footer">Here's some contact info</p>
</base-layout>

但是,如果你并不只有一個h1,你還有其他內(nèi)容也要一起放在這個插槽里,那你能怎么辦,為每一個要放在插槽里的標簽加slot嗎?太麻煩啦!所以就一起放在template里面,給templateslot咯。

3.插槽的默認內(nèi)容

有時候,我們也需要為某個插槽指定默認內(nèi)容。比如一個按鈕,默認顯示是 submit ,但我們有時在復(fù)用它的時候,我們又想改成別的,這個時候,就可以把這個按鈕的 submit 放在slot里面,然后在使用這個子組件的時候,放你要改的東西去改變它。如果沒有放,那就是默認的 submit。

<button type="submit">
 <slot>Submit</slot> <!--Submit就是插槽的默認內(nèi)容-->
</button>

4.作用域

在插槽中傳值時,如果想要使用數(shù)據(jù),這個數(shù)據(jù)應(yīng)該是父組件的,而不能是子組件的。也就是說是使用子組件的那個組件的data。

<navigation-link url="/profile">
 Logged in as {{ user.name }} 
</navigation-link>

這里的user不是navigation-link的,而是父組件的

牢記一條準則:父組件模板的所有東西都會在父級作用域內(nèi)編譯;子組件模板的所有東西都會在子級作用域內(nèi)編譯。

5.作用域插槽 【2.1.0+ 新增】(我也不知道為什么要叫這個名字,和插槽的作用于太像,很容易搞混?。?/p>

上面我們提到,插槽是具有作用于的,且當我們在使用子組件時,是無法獲取子組件的數(shù)據(jù)的。而有時,我們又需要獲取它,那么應(yīng)該怎么辦呢?

比如一個名為todo-list的子組件,它的內(nèi)容如下:

<ul>
 <li v-for="todo in todos"  v-bind:key="todo.id">
  {{ todo.text }}
 </li>
</ul>

這時,這里所獲取的數(shù)據(jù)是子組件自己內(nèi)部的數(shù)據(jù)。而我們在使用這個子組件時是無法獲取它的(當然我們可以用以前學(xué)習(xí)過的父子組件間的通訊來實現(xiàn)),我們可以利用slot來達到這個目的

<ul>
 <li v-for="todo in todos" v-bind:key="todo.id" >
  <!-- 我們?yōu)槊總€ todo 準備了一個插槽,-->
  <!-- 將 `todo` 對象作為一個插槽的 prop 傳入。-->
  <slot v-bind:todo="todo">
   <!-- 回退的內(nèi)容 -->
   {{ todo.text }}
  </slot>
 </li>
</ul>

然后當我們使用todo-list組件的是時候,可以這樣做

<todo-list v-bind:todos="todos">
 <!-- 將 `slotProps` 定義為插槽作用域的名字 -->
 <template slot-scope="slotProps">
  <!-- 為待辦項自定義一個模板,-->
  <!-- 通過 `slotProps` 定制每個待辦項。-->
  <span v-if="slotProps.todo.isComplete">✓</span>
  {{ slotProps.todo.text }}
 </template>
</todo-list>

這時即使我們是在父組件中,也還是可以獲取到子組件的數(shù)據(jù)。其中slotProps只是一個名字,我們用slot-scope指定為什么名字,就可以在下面用xx.來獲取子組件的data
在 2.5.0+,slot-scope 不再限制在 <template> 元素上使用,而可以用在插槽內(nèi)的任何元素或組件上。

以上就是詳解vue中的axios和slot的詳細內(nèi)容,更多關(guān)于vue axios和slot的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue模擬el-table演示插槽用法的示例詳解

    Vue模擬el-table演示插槽用法的示例詳解

    很多人知道插槽分為三種,但是實際到elementui當中為什么這么用,就一臉懵逼,接下來就跟大家聊一聊插槽在elementui中的應(yīng)用,并且自己寫一個類似el-table的組件,感興趣的可以了解一下
    2023-05-05
  • vue中使用過濾器filters的this為undefined的問題

    vue中使用過濾器filters的this為undefined的問題

    這篇文章主要介紹了vue中使用過濾器filters的this為undefined的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • vue3不同語法格式對比的實例代碼

    vue3不同語法格式對比的實例代碼

    vue3發(fā)布已有一段時間了,文檔也大概看了一下,不過對于學(xué)一門技術(shù),最好的方法還是實戰(zhàn),這篇文章主要給大家介紹了關(guān)于vue3不同語法格式對比的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Vue關(guān)于element穿梭框進行的修改成table表格穿梭框方式

    Vue關(guān)于element穿梭框進行的修改成table表格穿梭框方式

    這篇文章主要介紹了Vue關(guān)于element穿梭框進行的修改成table表格穿梭框方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue封裝可復(fù)用組件confirm,并綁定在vue原型上的示例

    vue封裝可復(fù)用組件confirm,并綁定在vue原型上的示例

    今天小編就為大家分享一篇vue封裝可復(fù)用組件confirm,并綁定在vue原型上的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Element的Message彈窗重復(fù)彈出問題解決

    Element的Message彈窗重復(fù)彈出問題解決

    本文主要介紹了Element的Message彈窗重復(fù)彈出,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue引入路徑正確但一直報錯問題:Already included file name ‘××ב differs from file name ‘××ב only in casing.

    Vue引入路徑正確但一直報錯問題:Already included file name&n

    這篇文章主要介紹了Vue引入路徑正確但一直報錯:Already included file name ‘××ב differs from file name ‘××ב only in casing.具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • vue通過接口直接下載java生成好的Excel表格案例

    vue通過接口直接下載java生成好的Excel表格案例

    這篇文章主要介紹了vue通過接口直接下載java生成好的Excel表格案例
    2020-10-10
  • SpringBoot+Vue3實現(xiàn)上傳文件功能

    SpringBoot+Vue3實現(xiàn)上傳文件功能

    這篇文章主要介紹了SpringBoot+Vue3實現(xiàn)上傳文件功能,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • vuex如何重置所有state(可定制)

    vuex如何重置所有state(可定制)

    在正式場景中我們經(jīng)常遇到一個問題,就是登出頁面或其他操作的時候,我們需要重置所有的vuex,讓其變?yōu)槌跏紶顟B(tài),那么如何重置呢,下面就跟隨小編一起來了解一下
    2019-01-01

最新評論