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

溫馨提示×

溫馨提示×

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

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

Vue3.2有哪些新特性

發布時間:2022-01-12 18:07:13 來源:億速云 閱讀:224 作者:iii 欄目:編程語言

本篇內容介紹了“Vue3.2有哪些新特性”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

第一個:<script setup> 正式畢業

從一開始學習vue3就注意到了實驗性的<script setup>。因為簡潔的寫法受到許多人追捧(寫過setup(){return{}} 的人都知道),甚至有人說這才是vue3的完全形態。看了更新描述,emmm....官方吐槽最為致命。

<script setup> 是一種編譯時語法糖,可在 SFC 內使用 Composition API 時**極大地改善工作效率。

第二個:新增<style> v-bind

而<style> v-bind呢,簡單地來說就是可以在內使用組件定義的動態值。官方給出了例子:

import { ref } from 'vue'
const color = ref('red')
</script>
<template>
  <button @click="color = color === 'red' ? 'green' : 'red'">
    Color is: {{ color }}
  </button>
</template>
<style scoped>
button {
  color: v-bind(color);
}
</style>

因為vue中文官網暫時沒有此次的更新內容,需要的同學可能要到外網啃啃英文文檔了。

文檔地址:

https://v3.vuejs.org/api/sfc-script-setup.html

第三個:新增 defineCustomElement方法

Vue 3.2 引入了一個新的 defineCustomElement 方法,可以使用 Vue 組件 API 輕松創建原生自定義元素:

import { defineCustomElement } from 'vue'
const MyVueElement = defineCustomElement({
  // normal Vue component options here
})
// Register the custom element.
// After registration, all `<my-vue-element>` tags
// on the page will be upgraded.
customElements.define('my-vue-element', MyVueElement)

第四個:性能改進

此處有很大篇幅講述3.2版本的性能升級,其中提到了新的指令v-memo,簡單來說這個指令會記住模板樹的一部分,不僅跳過虛擬 DOM 差異,而且完全跳過新 VNode 的創建。可用于復雜的大型頁面。

第五個:服務器渲染

最后提到了服務端渲染與新的Effect Scope API。有興趣的同學可以仔細看一看更新文檔。

blog.vuejs.org/posts/vue-3…

第6個:1024Lab 再說點兒

相信很多同學已經上手開始使用了。在文檔中可以看到,

defineProps、defineEmits、defineExpose、withDefaults屬于compiler macro,編譯器宏。文檔中也說到:

They do not need to be imported, and are compiled away when is processed

他們不需要引入,會在編譯的時候處理掉。

然而不引入你用的時候就會報錯。

<script setup>
const props = defineProps<{
  value?: number;
}>();
const emit = defineEmits<{
  (e: 'update:value', value: number): void;
}>();
</script>

首先eslint會報錯:

ESLint: 'defineEmits' is not defined.(no-undef)

此時你需要更改eslint-plugin-vue的配置

//https://eslint.vuejs.org/user-guide/#compiler-macros-such-as-defineprops-and-defineemits-are-warned-by-no-undef-rule
module.exports = {
  globals: {
    defineProps: "readonly",
    defineEmits: "readonly",
    defineExpose: "readonly",
    withDefaults: "readonly"
  }
}

然后可能編譯后瀏覽器控制臺會報錯

defineEmits is not defined

你可能會發現defineEmits等并沒有在編譯的時候處理掉,通過瀏覽器看源代碼defineEmits還在,且畫著紅色波浪線。此時你可能需要查看package.json中各個包的版本以及vite的版本2.4.x,更新后重試,此時編譯出來的代碼應該是這樣:

const _sfc_main = _defineComponent({
  props: {
    value: { type: Number, required: false }
  },
  emits: ["update:value"],
  setup(__props, { expose, emit }) {}
 })

“Vue3.2有哪些新特性”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

vue
AI

务川| 绵阳市| 天门市| 巴楚县| 荆门市| 治多县| 大安市| 增城市| 莱阳市| 江阴市| 广河县| 朔州市| 墨脱县| 靖西县| 微山县| 疏勒县| 从江县| 武山县| 博野县| 昌都县| 芜湖市| 万山特区| 汪清县| 万州区| 浦东新区| 广南县| 营山县| 米脂县| 丽江市| 镇安县| 日照市| 临武县| 大安市| 永济市| 榆社县| 黄陵县| 定安县| 横峰县| 新竹县| 汉中市| 来凤县|