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

Vue3實(shí)現(xiàn)微信支付寶PC端支付的步驟(附實(shí)例代碼)

 更新時(shí)間:2025年09月06日 14:06:08   作者:韶鹿先生  
因?yàn)楣卷?xiàng)目涉及到充值功能所以做了支付寶、微信的支付功能,這篇文章主要介紹了Vue3實(shí)現(xiàn)微信支付寶PC端支付的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

核心思想:無(wú)論是微信還是支付寶,PC端支付都遵循一個(gè)共同模式:“前端發(fā)起 -> 后端下單 -> 前端引導(dǎo)跳轉(zhuǎn)/展示二維碼 -> 用戶(hù)支付 -> 后端處理回調(diào)”。前端的主要職責(zé)是**“發(fā)起”“引導(dǎo)”**。

下面我將分別詳細(xì)講解這兩種支付方式的實(shí)現(xiàn)步驟,并提供Vue 3的代碼示例。

準(zhǔn)備工作

  1. 商戶(hù)資質(zhì):你的公司需要在微信商戶(hù)平臺(tái)支付寶開(kāi)放平臺(tái)注冊(cè)并簽約相關(guān)支付產(chǎn)品(如微信的Native支付、支付寶的電腦網(wǎng)站支付)。
  2. 后端接口:你需要后端同學(xué)提供以下接口:
    • 微信支付下單接口:例如 POST /api/payment/wechat-native。前端傳遞商品ID、金額等信息,后端調(diào)用微信統(tǒng)一下單API后,返回一個(gè)二維碼鏈接 (code_url)。
    • 支付寶支付下單接口:例如 POST /api/payment/alipay-pc。前端傳遞信息,后端調(diào)用支付寶下單API后,返回一個(gè)包含完整form表單的HTML字符串
    • 支付狀態(tài)查詢(xún)接口:例如 GET /api/payment/status?orderId=xxx。前端用于在用戶(hù)支付后,主動(dòng)向后端查詢(xún)訂單是否已成功。
  3. 前端環(huán)境:Vue 3 + axios (用于API請(qǐng)求)。

一、 微信支付 (Native Pay / 掃碼支付)

微信PC端支付最常用的方式是 Native Pay,即在網(wǎng)頁(yè)上顯示一個(gè)二維碼,用戶(hù)用手機(jī)微信掃碼完成支付。

流程分解

  1. 創(chuàng)建訂單:用戶(hù)在你的網(wǎng)站上點(diǎn)擊“去支付”。
  2. 前端請(qǐng)求下單:前端調(diào)用后端的微信支付下單接口,并傳遞訂單信息。
  3. 后端返回二維碼鏈接:后端與微信服務(wù)器交互后,會(huì)得到一個(gè) code_url,這是一個(gè)特殊的URL,內(nèi)容是微信支付二維碼的信息。后端將這個(gè) code_url 返回給前端。
  4. 前端生成并展示二維碼:前端使用一個(gè)二維碼生成庫(kù)(如 qrcode.vue)將 code_url 轉(zhuǎn)換成二維碼圖片并顯示出來(lái)。
  5. 前端輪詢(xún)支付狀態(tài):在二維碼顯示后,前端啟動(dòng)一個(gè)定時(shí)器,每隔幾秒鐘就調(diào)用后端的“支付狀態(tài)查詢(xún)接口”,詢(xún)問(wèn)訂單是否已支付成功。
  6. 用戶(hù)掃碼支付:用戶(hù)用手機(jī)微信掃描二維碼,輸入密碼完成支付。
  7. 后端接收異步通知:微信服務(wù)器會(huì)將支付成功的結(jié)果通過(guò)一個(gè)異步的HTTP請(qǐng)求(回調(diào))通知到你的后端服務(wù)器。后端收到通知后,更新訂單狀態(tài)為“已支付”。
  8. 前端輪詢(xún)得知成功:前端的輪詢(xún)請(qǐng)求最終會(huì)從后端那里得到“已支付”的狀態(tài),此時(shí)前端停止輪詢(xún),并給用戶(hù)顯示支付成功的提示,然后跳轉(zhuǎn)到成功頁(yè)面。

Vue 3 代碼實(shí)現(xiàn) (Payment.vue)

1. 安裝二維碼庫(kù)

npm install qrcode.vue

2. 編寫(xiě)組件

<template>
  <div class="payment-container">
    <h2>訂單支付</h2>
    <div v-if="!paymentSuccess">
      <div v-if="wechatCodeUrl" class="qrcode-section">
        <h3>微信支付</h3>
        <p>請(qǐng)使用微信掃描下方二維碼完成支付</p>
        <qrcode-vue :value="wechatCodeUrl" :size="200" level="H" />
        <p class="notice">二維碼將在 {{ countdown }} 秒后過(guò)期</p>
      </div>
      <div v-else>
        <p>正在生成支付二維碼,請(qǐng)稍候...</p>
      </div>
    </div>
    <div v-if="paymentSuccess">
      <h3>支付成功!</h3>
      <p>正在跳轉(zhuǎn)到訂單詳情頁(yè)面...</p>
    </div>
  </div>
</template>

<script setup>
import { ref, onMounted, onUnmounted } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import QrcodeVue from 'qrcode.vue';
import axios from 'axios'; // 假設(shè)已配置

const route = useRoute();
const router = useRouter();

const wechatCodeUrl = ref('');
const paymentSuccess = ref(false);
const countdown = ref(300); // 假設(shè)二維碼5分鐘過(guò)期

let pollTimer = null;
let countdownTimer = null;

const orderId = route.query.orderId; // 從路由獲取訂單ID

// 1. 獲取微信支付二維碼
const getWechatPayQrcode = async () => {
  try {
    const response = await axios.post('/api/payment/wechat-native', { orderId });
    wechatCodeUrl.value = response.data.code_url;
    // 成功獲取二維碼后,開(kāi)始輪詢(xún)和倒計(jì)時(shí)
    startPolling();
    startCountdown();
  } catch (error) {
    console.error('獲取微信支付二維碼失敗:', error);
    alert('支付二維碼生成失敗,請(qǐng)重試!');
  }
};

// 2. 輪詢(xún)支付狀態(tài)
const checkPaymentStatus = async () => {
  try {
    const response = await axios.get(`/api/payment/status?orderId=${orderId}`);
    if (response.data.status === 'SUCCESS') {
      paymentSuccess.value = true;
      stopPolling(); // 支付成功,停止輪詢(xún)
      // 跳轉(zhuǎn)到成功頁(yè)面
      setTimeout(() => {
        router.push(`/order-detail/${orderId}`);
      }, 2000);
    }
  } catch (error) {
    console.error('查詢(xún)支付狀態(tài)失敗:', error);
  }
};

const startPolling = () => {
  // 每3秒查詢(xún)一次
  pollTimer = setInterval(checkPaymentStatus, 3000);
};

const stopPolling = () => {
  if (pollTimer) {
    clearInterval(pollTimer);
  }
  if (countdownTimer) {
      clearInterval(countdownTimer);
  }
};

const startCountdown = () => {
    countdownTimer = setInterval(() => {
        if(countdown.value > 0) {
            countdown.value--;
        } else {
            stopPolling();
            alert('二維碼已過(guò)期,請(qǐng)刷新頁(yè)面重試');
        }
    }, 1000);
}


onMounted(() => {
  if (orderId) {
    getWechatPayQrcode();
  } else {
      alert('訂單ID不存在!');
  }
});

// 組件卸載時(shí),清除定時(shí)器,避免內(nèi)存泄漏
onUnmounted(() => {
  stopPolling();
});
</script>

<style scoped>
.payment-container {
  text-align: center;
  padding: 40px;
}
.qrcode-section {
  display: inline-block;
  border: 1px solid #eee;
  padding: 20px;
}
.notice {
    color: #999;
}
</style>

二、 支付寶支付 (電腦網(wǎng)站支付)

支付寶PC端支付通常是跳轉(zhuǎn)到一個(gè)新的頁(yè)面(支付寶的收銀臺(tái)),用戶(hù)在那個(gè)頁(yè)面完成支付后,再跳回你的網(wǎng)站。

流程分解

  1. 創(chuàng)建訂單:同微信支付。
  2. 前端請(qǐng)求下單:前端調(diào)用后端的支付寶支付下單接口。
  3. 后端返回Form表單:后端與支付寶服務(wù)器交互后,支付寶會(huì)返回一段包含支付信息的、會(huì)自動(dòng)提交的HTML Form表單字符串。后端將這個(gè)字符串原封不動(dòng)地返回給前端。
  4. 前端執(zhí)行頁(yè)面跳轉(zhuǎn):前端接收到這個(gè)HTML字符串后,不能直接用 v-html 渲染它。正確的做法是創(chuàng)建一個(gè)新的空白頁(yè)面(或iframe),將這段HTML寫(xiě)入其中。瀏覽器解析后,表單會(huì)自動(dòng)提交,頁(yè)面就會(huì)跳轉(zhuǎn)到支付寶的收銀臺(tái)。
  5. 用戶(hù)在支付寶頁(yè)面支付:用戶(hù)掃碼或登錄支付寶賬號(hào)完成支付。
  6. 支付寶同步跳轉(zhuǎn) (Return URL):用戶(hù)支付成功后,支付寶會(huì)根據(jù)你后端配置的 return_url,將用戶(hù)的瀏覽器重定向回你的網(wǎng)站的某個(gè)頁(yè)面(例如支付成功頁(yè)),并在URL中附帶上訂單號(hào)、支付金額等參數(shù)。
  7. 前端處理同步跳轉(zhuǎn):前端的成功頁(yè)面從URL中獲取參數(shù),可以先給用戶(hù)一個(gè)“支付成功”的初步提示。但此時(shí)不能100%確認(rèn)支付成功,因?yàn)檫@個(gè)跳轉(zhuǎn)是可以被偽造的。
  8. 后端接收異步通知 (Notify URL):與此同時(shí),支付寶服務(wù)器也會(huì)向你后端配置的 notify_url 發(fā)送一個(gè)異步的POST請(qǐng)求,這才是確認(rèn)支付成功的最終依據(jù)。后端收到通知并驗(yàn)簽成功后,才會(huì)更新訂單狀態(tài)。
  9. 前端確認(rèn)最終狀態(tài):前端成功頁(yè)面最好再調(diào)用一次“支付狀態(tài)查詢(xún)接口”來(lái)獲取最準(zhǔn)確的訂單狀態(tài),然后向用戶(hù)展示最終結(jié)果。

Vue 3 代碼實(shí)現(xiàn)

1. 支付發(fā)起組件 (Payment.vue)

<template>
  <div class="payment-container">
    <h2>訂單支付</h2>
    <button @click="handleAlipay">使用支付寶支付</button>
    <!-- 這里就是用來(lái)接收和提交支付寶表單的容器 -->
    <div ref="alipayFormContainer"></div>
  </div>
</template>

<script setup>
import { ref } from 'vue';
import { useRoute } from 'vue-router';
import axios from 'axios';

const route = useRoute();
const orderId = route.query.orderId;
const alipayFormContainer = ref(null); // 用于獲取DOM元素

const handleAlipay = async () => {
  try {
    const response = await axios.post('/api/payment/alipay-pc', { orderId });
    const formHtml = response.data.form_html;

    // **關(guān)鍵步驟:提交支付寶返回的表單**
    if (alipayFormContainer.value) {
      // 1. 將表單HTML寫(xiě)入容器
      alipayFormContainer.value.innerHTML = formHtml;
      // 2. 找到表單并觸發(fā)表單提交
      const form = alipayFormContainer.value.querySelector('form');
      if (form) {
        form.submit();
      } else {
        throw new Error('Alipay form not found in response.');
      }
    }
  } catch (error) {
    console.error('支付寶支付發(fā)起失敗:', error);
    alert('支付失敗,請(qǐng)稍后重試!');
  }
};
</script>

2. 支付成功回調(diào)頁(yè)面 (PaymentSuccess.vue)

你需要一個(gè)專(zhuān)門(mén)的路由和頁(yè)面來(lái)接收支付寶的同步跳轉(zhuǎn)。

// 在 router/index.js 中配置路由
// { path: '/payment/success', name: 'PaymentSuccess', component: PaymentSuccess }

// PaymentSuccess.vue
<template>
  <div class="result-container">
    <div v-if="loading">正在確認(rèn)支付結(jié)果...</div>
    <div v-else-if="paymentSuccess">
      <h3>支付成功!</h3>
      <p>訂單號(hào):{{ orderId }}</p>
    </div>
    <div v-else>
      <h3>支付結(jié)果確認(rèn)失敗</h3>
      <p>請(qǐng)稍后到您的訂單中心查看最新?tīng)顟B(tài)。</p>
    </div>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import { useRoute } from 'vue-router';
import axios from 'axios';

const route = useRoute();
const loading = ref(true);
const paymentSuccess = ref(false);
const orderId = ref('');

onMounted(async () => {
  // 從支付寶同步跳轉(zhuǎn)的URL中獲取訂單號(hào)
  orderId.value = route.query.out_trade_no;

  if (orderId.value) {
    try {
      // 再次向自己的后端查詢(xún),獲取最準(zhǔn)確的支付狀態(tài)
      const response = await axios.get(`/api/payment/status?orderId=${orderId.value}`);
      if (response.data.status === 'SUCCESS') {
        paymentSuccess.value = true;
      }
    } catch (error) {
      console.error('確認(rèn)支付狀態(tài)失敗:', error);
    } finally {
      loading.value = false;
    }
  } else {
      loading.value = false;
  }
});
</script>

總結(jié)與對(duì)比

特性微信支付 (Native)支付寶支付 (電腦網(wǎng)站)
交互方式內(nèi)嵌二維碼,不離開(kāi)當(dāng)前網(wǎng)站跳轉(zhuǎn)到支付寶網(wǎng)站
前端核心任務(wù)1. 請(qǐng)求code_url
2. 生成二維碼
3. 輪詢(xún)支付狀態(tài)
1. 請(qǐng)求form_html
2. 動(dòng)態(tài)創(chuàng)建并提交表單
結(jié)果確認(rèn)依賴(lài)前端輪詢(xún)獲取最終狀態(tài)依賴(lài)同步跳轉(zhuǎn)(return_url) + 最終狀態(tài)查詢(xún)
用戶(hù)體驗(yàn)在當(dāng)前頁(yè)完成,體驗(yàn)更連貫頁(yè)面跳轉(zhuǎn),體驗(yàn)有中斷感

問(wèn)題1:支付寶能不能像微信支付一樣也采用短輪詢(xún)的方式

完全可以! 支付寶同樣支持通過(guò)短輪詢(xún)的方式來(lái)處理支付結(jié)果,而且在某些場(chǎng)景下,這種方式的用戶(hù)體驗(yàn)會(huì)優(yōu)于頁(yè)面跳轉(zhuǎn)。

短輪詢(xún)的方式,對(duì)應(yīng)的是支付寶的 “當(dāng)面付” 產(chǎn)品中的 “掃碼支付” 功能。雖然它的名字叫“當(dāng)面付”,但它并非只能用于線(xiàn)下場(chǎng)景。線(xiàn)上PC網(wǎng)站完全可以使用它來(lái)實(shí)現(xiàn)和微信Native Pay(掃碼支付)一模一樣的用戶(hù)體驗(yàn)。

下面詳細(xì)講解如何使用支付寶的“掃碼支付”配合前端輪詢(xún)來(lái)實(shí)現(xiàn)PC端支付。

支付寶“掃碼支付”(當(dāng)面付)的工作流程

這個(gè)流程和我們之前討論的微信掃碼支付幾乎完全一致:

  1. 簽約產(chǎn)品:確保你的支付寶開(kāi)放平臺(tái)賬號(hào)已經(jīng)簽約了**“當(dāng)面付”** 產(chǎn)品。

  2. 創(chuàng)建訂單:用戶(hù)在你的網(wǎng)站上點(diǎn)擊“去支付”。

  3. 前端請(qǐng)求下單:前端調(diào)用后端的支付寶下單接口。這里與“電腦網(wǎng)站支付”的下單接口是不同的。例如 POST /api/payment/alipay-qrcode。

  4. 后端調(diào)用支付寶“統(tǒng)一收單交易預(yù)創(chuàng)建”接口

    • 后端不再是調(diào)用 alipay.trade.page.pay (電腦網(wǎng)站支付接口)。
    • 而是調(diào)用 alipay.trade.precreate (掃碼支付的預(yù)創(chuàng)建接口)。
    • 這個(gè)接口成功后,支付寶會(huì)返回一個(gè)二維碼鏈接 (qr_code),這個(gè)鏈接的內(nèi)容就是支付寶支付二維碼的信息。
  5. 后端返回二維碼鏈接給前端:后端將從支付寶獲取的 qr_code 字符串返回給前端。

  6. 前端生成并展示二維碼:前端拿到這個(gè) qr_code 字符串,使用二維碼生成庫(kù)(如 qrcode.vue)將其渲染成一個(gè)可供掃描的二維碼圖片,并展示在當(dāng)前頁(yè)面上。

  7. 前端啟動(dòng)輪詢(xún):在二維碼顯示的同時(shí),前端啟動(dòng)一個(gè)定時(shí)器,每隔幾秒鐘就調(diào)用后端的“支付狀態(tài)查詢(xún)接口”(這個(gè)查詢(xún)接口可以和微信共用),主動(dòng)詢(xún)問(wèn)訂單的支付狀態(tài)。

  8. 用戶(hù)掃碼支付:用戶(hù)打開(kāi)手機(jī)支付寶App,使用“掃一掃”功能掃描網(wǎng)頁(yè)上的二維碼,并完成支付。

  9. 后端接收異步通知 (Notify URL):用戶(hù)支付成功后,支付寶服務(wù)器會(huì)向你后端配置的 notify_url 發(fā)送異步通知。后端接收到通知并驗(yàn)簽成功后,更新訂單狀態(tài)為“已支付”。

  10. 前端輪詢(xún)得知成功:前端的輪詢(xún)請(qǐng)求最終會(huì)從后端那里得到“已支付”的狀態(tài)。此時(shí),前端停止輪詢(xún),并給用戶(hù)顯示支付成功的提示,然后跳轉(zhuǎn)到成功頁(yè)面或更新UI。

與“電腦網(wǎng)站支付”的核心區(qū)別

特性支付寶“掃碼支付”(當(dāng)面付)支付寶“電腦網(wǎng)站支付”
后端調(diào)用接口alipay.trade.precreatealipay.trade.page.pay
后端返回值二維碼鏈接字符串 (qr_code)一段可自動(dòng)提交的HTML Form表單
前端處理方式內(nèi)嵌二維碼 + 前端輪詢(xún)新頁(yè)面跳轉(zhuǎn)
用戶(hù)體驗(yàn)在當(dāng)前網(wǎng)站完成支付,不跳轉(zhuǎn),體驗(yàn)流暢跳轉(zhuǎn)到支付寶網(wǎng)站,支付完成后再跳回,體驗(yàn)有中斷感
適用場(chǎng)景需要在網(wǎng)頁(yè)內(nèi)完成支付的場(chǎng)景,用戶(hù)體驗(yàn)更佳任何PC網(wǎng)站支付,實(shí)現(xiàn)簡(jiǎn)單,是傳統(tǒng)的PC支付方式

Vue 3 代碼實(shí)現(xiàn)(輪詢(xún)方式)

你會(huì)發(fā)現(xiàn),這段代碼和我們之前寫(xiě)的微信支付的代碼幾乎完全一樣,只是API地址和返回字段名可能不同。這正是輪詢(xún)方式的優(yōu)點(diǎn)之一:前端邏輯可以高度復(fù)用。

<template>
  <div class="payment-container">
    <h2>選擇支付方式</h2>
    <div>
      <button @click="initiatePayment('wechat')">微信支付</button>
      <button @click="initiatePayment('alipay')">支付寶支付</button>
    </div>

    <!-- 統(tǒng)一的二維碼展示區(qū)域 -->
    <div v-if="qrcodeUrl" class="qrcode-section">
      <h3>請(qǐng)使用{{ paymentMethod === 'wechat' ? '微信' : '支付寶' }}掃碼支付</h3>
      <qrcode-vue :value="qrcodeUrl" :size="200" level="H" />
      <p>二維碼有效時(shí)間剩余 {{ countdown }} 秒</p>
    </div>
  </div>
</template>

<script setup>
import { ref, onUnmounted } from 'vue';
import { useRoute } from 'vue-router';
import QrcodeVue from 'qrcode.vue';
import axios from 'axios';

const route = useRoute();
const orderId = route.query.orderId;

const paymentMethod = ref('');
const qrcodeUrl = ref('');
const countdown = ref(300);

let pollTimer = null;
let countdownTimer = null;

// 發(fā)起支付(根據(jù)選擇的支付方式)
const initiatePayment = async (method) => {
  // 清理之前的狀態(tài)
  stopPolling();
  qrcodeUrl.value = '';
  paymentMethod.value = method;

  try {
    let apiUrl = '';
    if (method === 'wechat') {
      apiUrl = '/api/payment/wechat-native';
    } else if (method === 'alipay') {
      apiUrl = '/api/payment/alipay-qrcode'; // 調(diào)用支付寶掃碼支付的下單接口
    }

    const response = await axios.post(apiUrl, { orderId });
    
    // 根據(jù)不同接口返回的字段名獲取二維碼鏈接
    qrcodeUrl.value = (method === 'wechat') ? response.data.code_url : response.data.qr_code;
    
    // 開(kāi)始輪詢(xún)和倒計(jì)時(shí)
    startPolling();
    startCountdown();
  } catch (error) {
    console.error(`${method}支付二維碼生成失敗:`, error);
    alert('支付二維碼生成失敗,請(qǐng)重試!');
  }
};

// 輪詢(xún)支付狀態(tài)(完全可復(fù)用)
const checkPaymentStatus = async () => {
  try {
    const response = await axios.get(`/api/payment/status?orderId=${orderId}`);
    if (response.data.status === 'SUCCESS') {
      stopPolling();
      alert('支付成功!');
      // router.push(...);
    }
  } catch (error) {
    console.error('查詢(xún)支付狀態(tài)失敗:', error);
  }
};

const startPolling = () => {
  pollTimer = setInterval(checkPaymentStatus, 3000);
};

const startCountdown = () => {
  countdown.value = 300; // 重置倒計(jì)時(shí)
  countdownTimer = setInterval(() => {
    if (countdown.value > 0) {
      countdown.value--;
    } else {
      stopPolling();
      qrcodeUrl.value = ''; // 清空二維碼
      alert('二維碼已過(guò)期,請(qǐng)重新選擇支付方式');
    }
  }, 1000);
};

const stopPolling = () => {
  if (pollTimer) clearInterval(pollTimer);
  if (countdownTimer) clearInterval(countdownTimer);
};

onUnmounted(() => {
  stopPolling();
});
</script>

總結(jié)

答案是肯定的。支付寶的“當(dāng)面付-掃碼支付”產(chǎn)品就是為了實(shí)現(xiàn)與微信Native Pay類(lèi)似的用戶(hù)體驗(yàn)而設(shè)計(jì)的。

選擇哪種支付寶支付方式?

  • 追求最佳用戶(hù)體驗(yàn):選擇 “當(dāng)面付-掃碼支付” + 前端輪詢(xún)。用戶(hù)無(wú)需離開(kāi)你的網(wǎng)站,流程更順暢,是現(xiàn)代Web應(yīng)用的首選。
  • 追求最簡(jiǎn)單的實(shí)現(xiàn):選擇 “電腦網(wǎng)站支付” + 頁(yè)面跳轉(zhuǎn)。前端邏輯極其簡(jiǎn)單(拿到HTML字符串并提交),但用戶(hù)體驗(yàn)稍差。

對(duì)于一個(gè)同時(shí)需要支持微信和支付寶掃碼支付的PC網(wǎng)站,采用輪詢(xún)方案可以讓你的前端代碼邏輯高度統(tǒng)一,維護(hù)起來(lái)更加方便。

到此這篇關(guān)于Vue3實(shí)現(xiàn)微信支付寶PC端支付的文章就介紹到這了,更多相關(guān)Vue3微信支付寶PC端支付內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue兩個(gè)通信方式與動(dòng)畫(huà)過(guò)度及混入使用介紹

    Vue兩個(gè)通信方式與動(dòng)畫(huà)過(guò)度及混入使用介紹

    最近在寫(xiě)vue的一個(gè)項(xiàng)目要實(shí)現(xiàn)過(guò)渡的效果,雖然vue動(dòng)畫(huà)不是強(qiáng)項(xiàng),庫(kù)也多,但是基本的坑還是得踩扎實(shí),下面這篇文章主要給大家介紹了關(guān)于Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)效果的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • VUE項(xiàng)目運(yùn)行npm install報(bào)錯(cuò)問(wèn)題以及解決

    VUE項(xiàng)目運(yùn)行npm install報(bào)錯(cuò)問(wèn)題以及解決

    在運(yùn)行Vue項(xiàng)目時(shí)遇到npm安裝錯(cuò)誤可使用命令npminstall--legacy-peer-deps解決,若VsCode中無(wú)法運(yùn)行npm命令,則可能是IDE配置未生效,可嘗試重啟電腦或使用cmd命令行直接在項(xiàng)目目錄下運(yùn)行
    2024-10-10
  • Vue.js 2.0 和 React、Augular等其他前端框架大比拼

    Vue.js 2.0 和 React、Augular等其他前端框架大比拼

    這篇文章主要介紹了Vue.js 2.0 和 React、Augular等其他前端框架大比拼的相關(guān)資料,React 和 Vue 有許多相似之處,本文給大家提到,需要的朋友可以參考下
    2016-10-10
  • 深入理解Vue3 computed

    深入理解Vue3 computed

    本文主要介紹了Vue3 computed的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • vue使用luckyexcel實(shí)現(xiàn)在線(xiàn)表格及導(dǎo)出導(dǎo)入方式

    vue使用luckyexcel實(shí)現(xiàn)在線(xiàn)表格及導(dǎo)出導(dǎo)入方式

    這篇文章主要介紹了vue使用luckyexcel實(shí)現(xiàn)在線(xiàn)表格及導(dǎo)出導(dǎo)入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • vue請(qǐng)求按順序執(zhí)行的示例詳解

    vue請(qǐng)求按順序執(zhí)行的示例詳解

    我們有時(shí)候會(huì)碰到這種情況,需要連續(xù)發(fā)送兩個(gè)請(qǐng)求,第二個(gè)請(qǐng)求需要用第一個(gè)請(qǐng)求的某個(gè)返回值作為參數(shù)來(lái)作為第二個(gè)請(qǐng)求的請(qǐng)求參數(shù),這篇文章主要介紹了vue請(qǐng)求如何按順序執(zhí)行,需要的朋友可以參考下
    2023-12-12
  • vue?element-plus圖片預(yù)覽實(shí)現(xiàn)方法

    vue?element-plus圖片預(yù)覽實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于vue?element-plus圖片預(yù)覽實(shí)現(xiàn)的相關(guān)資料,最近的項(xiàng)目中有圖片預(yù)覽的場(chǎng)景,也是踩了一些坑,在這里總結(jié)一下,需要的朋友可以參考下
    2023-07-07
  • elementui的table根據(jù)是否符合需求合并列的實(shí)現(xiàn)代碼

    elementui的table根據(jù)是否符合需求合并列的實(shí)現(xiàn)代碼

    這篇文章主要介紹了elementui的table根據(jù)是否符合需求合并列的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • 淺談vue websocket nodeJS 進(jìn)行實(shí)時(shí)通信踩到的坑

    淺談vue websocket nodeJS 進(jìn)行實(shí)時(shí)通信踩到的坑

    這篇文章主要介紹了淺談vue websocket nodeJS 進(jìn)行實(shí)時(shí)通信踩到的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • vue中axios的封裝問(wèn)題(簡(jiǎn)易版攔截,get,post)

    vue中axios的封裝問(wèn)題(簡(jiǎn)易版攔截,get,post)

    這篇文章主要介紹了vue中axios的封裝問(wèn)題(簡(jiǎn)易版攔截,get,post),需要的朋友可以參考下
    2018-06-06

最新評(píng)論