日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用VueDemi構(gòu)建通用的Vue組件庫

Vue Demi 是一個很棒的包,具有很多潛力和實用性。我強烈建議在創(chuàng)建下一個 Vue 庫時使用它。

堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都玻璃貼膜小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。

根據(jù)創(chuàng)建者 Anthony Fu 的說法,Vue Demi 是一個開發(fā)實用程序,它允許用戶為 Vue 2 和 Vue 3 編寫通用的 Vue 庫,而無需擔(dān)心用戶安裝的版本。

以前,要創(chuàng)建支持兩個目標(biāo)版本的 Vue 庫,我們會使用不同的分支來分離對每個版本的支持。對于現(xiàn)有庫來說,這是一個很好的方法,因為它們的代碼庫通常更穩(wěn)定。

缺點是,你需要維護(hù)兩個代碼庫,這讓你的工作量翻倍。對于想要支持Vue的兩個目標(biāo)版本的新Vue庫來說,我不推薦這種方法。實施兩次功能請求和錯誤修復(fù)根本就不理想。

這就是 Vue Demi 的用武之地。Vue Demi 通過為兩個目標(biāo)版本提供通用支持來解決這個問題,這意味著您只需構(gòu)建一次即可獲得兩個目標(biāo)版本的所有優(yōu)點,從而獲得兩全其美的優(yōu)勢。

在本文中,我們將了解 Vue Demi 是做什么的,它是如何工作的,以及如何開始構(gòu)建一個通用的 Vue 組件庫。

Vue Demi 中的額外 API

除了 Vue 已經(jīng)提供的 API 之外,Vue Demi 還引入了一些額外的 API 來幫助區(qū)分用戶的環(huán)境和執(zhí)行特定于版本的邏輯。讓我們仔細(xì)看看它們!

請注意,Vue Demi 還包括 Vue 中已經(jīng)存在的標(biāo)準(zhǔn) API,例如 ref、onMounted 和 onUnmounted 等。

isVue2 and isVue3

在 Vue Demi 中,isvue2 和 isvue3 API 允許用戶在創(chuàng)建 Vue 庫時應(yīng)用特定于版本的邏輯。

例如:

import { isVue2, isVue3 } from 'vue-demi' 
if (isVue2) {
// Vue 2 only
} else {
// Vue 3 only
}

vue2

Vue Demi 提供了 vue2 API,它允許用戶訪問 Vue 2 的全局 API,如下所示:

import { Vue2 } from 'vue-demi' 
// in Vue 3 `Vue2` will return undefined
if (Vue2) {
Vue2.config.devtools = true
}

install()

在 Vue 2 中,Composition API 作為插件提供,在使用它之前需要安裝在 Vue 實例上:

import Vue from 'vue' 
import VueCompositionAPI from '@vue/composition-api'

Vue.use(VueCompositionAPI)

Vue Demi 會嘗試自動安裝它,但是對于您想要確保插件安裝正確的情況,提供了 install() API 來幫助您。

它作為 Vue.use(VueCompositionAPI) 的安全版本公開:

import { install } from 'vue-demi' 

install()

Vue Demi 入門

要開始使用 Vue Demi,您需要將其安裝到您的應(yīng)用程序中。在本文中,我們將創(chuàng)建一個集成 Paystack 支付網(wǎng)關(guān)的 Vue 組件庫。

你可以像這樣安裝 Vue Demi:

// Npm 
npm i vue-demi

// Yarn
yarn add vue-demi

您還需要添加 vue 和 @vue/composition-api 作為庫的對等依賴項,以指定它應(yīng)該支持的版本。

現(xiàn)在我們可以將 Vue Demi 導(dǎo)入我們的應(yīng)用程序:



如此處所示,我們可以使用已經(jīng)存在的標(biāo)準(zhǔn) Vue API,例如 defineComponent、PropType 和h。

現(xiàn)在我們已經(jīng)導(dǎo)入了Vue Demi,讓我們來添加我們的props。這些是用戶在使用組件庫時需要(或不需要,取決于你的口味)傳入的屬性。

上面看到的屬性是使用 Paystack 的 Popup JS 所必需的。

Popup JS 提供了一種將 Paystack 集成到我們的網(wǎng)站并開始接收付款的簡單方法:



scriptLoaded 狀態(tài)幫助我們知道是否添加了 Paystack Popup JS 腳本,并且 loadScript 方法加載 Paystack Popup JS 腳本并將其添加到我們的文檔頭部。

payWithPaystack 方法用于在調(diào)用時使用 Paystack Popup JS 初始化交易:

render() {
if (isVue2) {
return h(
"button",
{
staticClass: ["paystack-button"],
style: [{display: "block"}],
attrs: {type: "button"},
on: {click: this.payWithPaystack},
},
this.$slots.default ? this.$slots.default : "PROCEED TO PAYMENT"
)
}
return h(
"button",
{
class: ["paystack-button"],
style: [{display: "block"}],
type: "button",
onClick: this.payWithPaystack,
},
this.$slots.default ? this.$slots.default() : "PROCEED TO PAYMENT"
)
}

render 函數(shù)幫助我們創(chuàng)建沒有 標(biāo)簽的組件,并返回一個虛擬 DOM 節(jié)點。

如果你注意到,我們在條件語句中使用了Vue Demi的一個API,isVue2,來有條件地渲染我們的按鈕。如果沒有這一點,如果我們想在Vue 2應(yīng)用程序中使用我們的組件庫,我們可能會因為Vue 2不支持Vue 3的一些API而遇到錯誤。

現(xiàn)在,當(dāng)我們構(gòu)建我們的庫時,它可以在 Vue 2 和 Vue 3 中訪問。

完整的源代碼可在此處獲得:https://github.com/ECJ222/vue-paystack2

原文:https://blog.logrocket.com/build-universal-vue-component-library-vue-demi/

作者:Enoch Chejieh

本文轉(zhuǎn)載自微信公眾號「前端全棧開發(fā)者」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系前端全棧開發(fā)者公眾號。


本文標(biāo)題:使用VueDemi構(gòu)建通用的Vue組件庫
本文網(wǎng)址:http://www.dlmjj.cn/article/cddosgs.html