91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue3中setup參數attrs,slots,emit實例分析

發布時間:2022-08-09 11:22:07 來源:億速云 閱讀:1008 作者:iii 欄目:編程語言

這篇文章主要介紹了vue3中setup參數attrs,slots,emit實例分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇vue3中setup參數attrs,slots,emit實例分析文章都會有所收獲,下面我們一起來看看吧。

home.vue

<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png" />
    <HelloWorld msg="Welcome to Your Vue.js App" proper="1" @custome="handler">
      <template v-slot:one> {{ home }} - 子組件插槽的數據: </template>
    </HelloWorld>
  </div>
</template>
<script>
import HelloWorld from "@/components/HelloWorld.vue";
export default {
  name: "Home",
  data() {
    return {
      home: "主頁",
    };
  },
  components: { HelloWorld },
  methods: {
    handler(args) {
      console.log("子組件傳遞的參數:", args);
    },
  },
};
</script>

Helloworld.vue

<template>
  <div class="hello">
    <h2>{{ msg }}</h2>
    <span>這里是插槽內容:</span>
    <slot slotone="01" name="one"></slot>
    <slot slottwo="02" name="two"></slot>
    <hr />

    <button @click="$emit('custome', '參數')">點擊傳遞參數</button>
  </div>
</template>
<script>
export default {
  name: "HelloWorld",
  props: {
    msg: String,
  },
  setup(props, context) {
    console.log("props:", props);
    console.log("context:", context);
    const { attrs, slots, emit } = context;
    console.log("attrs:", attrs);
    console.log("slots:", slots);
    console.log("emit:", emit);
  },
};
</script>

控制臺輸出:

props: Proxy {msg: "Welcome to Your Vue.js App"}
context: {expose: ?}
attrs: Proxy {proper: "1", __vInternal: 1, onCustome: ?}
slots: Proxy {_: 1, __vInternal: 1, one: ?}
emit: (event, ...args) => instance.emit(event, ...args)

繼續展開:
vue3中setup參數attrs,slots,emit實例分析
結合圖里面圈起來的部分,我大概得出的結論

  • context上下文這里應該是指helloworld這個組件

  • attrs也就組件的是那個$attrs(不含props,但是包含函數方法)

  • slots是組件插槽,并且是有被“使用”的插槽,因為另外一個插槽"two"沒有對應的模板渲染

  • emit感覺是組件的自定義事件到底是什么呢?但是,這里看控制臺輸出實際上也得不出什么內容。

想知道以上4條結論理解是否正確。

大致是對的。唯有第一點稍稍有點兒問題,context 不是這個組件的真正對象,只是在 setup 時帶了其中一部分信息的玩意兒,執行 setup 時這個組件對象還沒被創建出來呢。

不知道題主以前接沒接觸過 Vue2 或者 Vue3 的 Options API 寫法,要是直接上來就是 Vue3 Composition API 確實不太容易理解。

后面仨其實就是 Options API 里的 this.$attrsthis.$slotsthis.$emit,因為 setup 時還沒有 this 呢,所以變成了這樣寫。

關于“vue3中setup參數attrs,slots,emit實例分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“vue3中setup參數attrs,slots,emit實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鸡东县| 绥滨县| 铁岭市| 滕州市| 西青区| 佳木斯市| 广西| 呼和浩特市| 阳春市| 安塞县| 张北县| 山阴县| 新营市| 新龙县| 九龙县| 舞钢市| 孟州市| 大关县| 称多县| 衡水市| 同江市| 荥经县| 萨嘎县| 时尚| 定日县| 两当县| 陕西省| 云南省| 泸西县| 宁远县| 衡东县| 苏尼特右旗| 永吉县| 比如县| 张家界市| 资中县| 金川县| 正蓝旗| 蒲城县| 临海市| 绵阳市|