分類
標籤
.env AI Arc Arm Astro BigQuery btop Certbot Chrome CICD Cookie CORS CSS cURL DataTables defineExpose DevOps Docker Draggable Fetch API Gamania Git GitLab Google Calendar Google Cloud Summit Google Tag Manager GSAP HTML iCal inject JavaScript Laravel Less LINE Llama 3 Masonry Meta Nginx Nginx UI O(log n) Ollama OpenSSL Oracle OrbStack PHP Pinia Pixel Postman provide Proxyman Raycast requestAnimationFrame script setup Server Session Sitemap Socialite SSL TablePlus Termius Valet Vertex AI Visual Studio Code Vite Vue 3 Vue2 Vue3 Vuex Warp Webpack Yahoo Calendar Zeabur 二分搜尋 元件溝通 前端開發 動畫效果 峰值體驗 廣告 性能優化 打包 推薦系統 搜尋 時間複雜度 演算法 瀑布流排版 父子元件 環境變數 程式碼複製按鈕 系統監控 網站地圖 網頁開發 自動化部署 螢幕刷新率 語言模型 資訊檢索 跨域請求 轉化率 開發工具 陣列 電商 電子商務
296 字
1 分鐘
Vue2 升級到 Vue3 - 語法差異與套件更新
這篇文章將記錄升級 Vue2 到 Vue3 時的一些語法差異和套件更新。
Vue3 與 Vue2 的語法差異
捨棄 this.$set
直接進行操作即可
this.$set(element, 'isOpen', 1);
// 改用
element.isOpen = 1;
捨棄 $vnode
使用 key 或 index 替代 $vnode
在 props
中應該還需要加入 product_item_index: {type: Number, default: 0}
。
<div class="btn btn-danger btn-block" @click="$parent.deleteItem($vnode.key)">刪除</div>
// 改用
<div class="btn btn-danger btn-block" @click="$parent.deleteItem(product_item_index)">刪除</div>
捨棄 this.$delete
this.$delete(items, item_index);
// 改用
items.splice(item_index, 1);
使用 v-model 替代 .sync
:target.sync="form.original_group_id"
// 改用
v-model:target="form.original_group_id"
棄用 ::v-deep,改用 ()
.a ::v-deep .b {
/* ... */
}
// 改用
.a :deep(.b) {
/* ... */
}
參考資料:
Vue3 中單獨包含 templete 的 HTML 無法顯示
這樣是無法顯示的:
<template>
<div>123</div>
</template>
要使用 template 必須要有條件判斷才能顯示:
<template v-if="true">
<div>123</div>
</template>
套件更新
v-clipboard
改用 vue-clipboard3
Waiting for api.github.com...
draggable
Waiting for api.github.com...
下面的 item 要改用 #item="{ element, index }"
的寫法,element, index 不能更改名稱。
<draggable v-model="product.carousels"
item-key="carousels"
class="dragArea"
:group="{ name:'img-area', pull:'clone', put:false }">
<template #item="{ element, index }">
<div class="item" :key="`element-${index}`">
</div>
</template>
</draggable>
VueMultiselect
Waiting for api.github.com...
@input="onChanged"
// 改用
@select="onChanged"
參考資料:
Vue2 升級到 Vue3 - 語法差異與套件更新
https://laplusda.com/posts/vue2-to-vue3-case-1/