国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面

這篇具有很好參考價(jià)值的文章主要介紹了Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面

??前言

這篇文章記錄一下 Vue3 計(jì)算屬性和偵聽(tīng)器 (computed、watch) 實(shí)戰(zhàn)的內(nèi)容,這篇文章我們?cè)谟杏?jì)算屬性和偵聽(tīng)器的基礎(chǔ)上,我們來(lái)制作一個(gè)簡(jiǎn)易點(diǎn)餐頁(yè)面,接下來(lái)我們一起來(lái)從零到一開(kāi)始制作。

計(jì)算屬性和偵聽(tīng)器相關(guān)文章推薦:
深入與淺談 Vue 中計(jì)算屬性和偵聽(tīng)器的區(qū)別和使用(Vue3版本為例)
淺談在 Vue2 和 Vue3 中計(jì)算屬性和偵聽(tīng)器的一些變化


??項(xiàng)目介紹

在創(chuàng)建項(xiàng)目之前,我們先簡(jiǎn)單看一下這次項(xiàng)目需要完成的頁(yè)面內(nèi)容,如下圖。主頁(yè)列表羅列著菜品名稱、圖片介紹,用戶通過(guò)單機(jī)添加按鈕,實(shí)現(xiàn)菜品添加的點(diǎn)餐功能。最后在頁(yè)面的下方會(huì)顯示用戶點(diǎn)餐詳情以及總數(shù)和總價(jià),同時(shí)可以通過(guò)單機(jī)刪除按鈕,實(shí)現(xiàn)菜品的刪除的取消點(diǎn)餐功能。
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面


??項(xiàng)目創(chuàng)建

要?jiǎng)?chuàng)建一個(gè) Vite 項(xiàng)目,需要先安裝 Vite。可以使用 npm 或者 yarn 進(jìn)行安裝。在命令行中輸入:

npm install vite -g  # 全局安裝 vite
或者
yarn global add vite  # 全局安裝 vite

然后通過(guò)以下命令創(chuàng)建一個(gè) Vite 項(xiàng)目,名稱是 vite-demo。

npm init vite@latest vite-demo

選擇 Vue
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面
然后選擇 TypeScript
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面
默認(rèn)生成的項(xiàng)目結(jié)構(gòu)如下,然后在控制臺(tái)輸入 npm install 安裝相關(guān)依賴 (主要選擇當(dāng)前文件夾)。
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面
最后輸入 npm run dev 啟動(dòng)項(xiàng)目,出現(xiàn)如下頁(yè)面表示運(yùn)行成功。
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面
到此項(xiàng)目創(chuàng)建完成,接下來(lái)我們來(lái)看看具體代碼。


??代碼分析

我們根據(jù)上面項(xiàng)目介紹的圖片展示,點(diǎn)餐頁(yè)面分為三個(gè)部分,即菜品列表、點(diǎn)餐列表以及消費(fèi)價(jià)格??梢韵雀鶕?jù)這個(gè)頁(yè)面設(shè)計(jì)來(lái)實(shí)現(xiàn)代碼的布局。在項(xiàng)目中的 App.vue 文件中,修改 template 模板部分的代碼。

<template>
  <div class="food-container">
    <div class="food-wrap">
      <!-- 菜品列表 -->
      <ul class="food-main">
        <li v-for="(item, index) in foodList" :key="item.name">
          <img :src="item.url" class="food-image"/>
          <label>
            <span>{{item.name}}</span>
          </label>
          <button class="btn btn-add" @click="orderFood(index)">添加</button>
          <span class="food-price">價(jià)格 {{item.price}} 元/份</span>
        </li>
      </ul>
      <!-- 點(diǎn)餐列表 -->
      <div class="food-order">
        <ul class="order-main">
          <li class="order-item" v-for="(item, index) in orderList" :key="item.name">
            <label>{{item.name}}</label>
            <div>
              <span class="order-count"> X {{item.count}}</span>
              <button class="btn btn-delete" @click="removeFood(index)">刪除</button>
            </div>
          </li>
        </ul>
      </div>
      <!-- 總消費(fèi)價(jià)格 -->
      <div class="food-total-price">
        <span>
          <span class="total-count">已點(diǎn) {{totalCount}} 份餐</span>
          <span>共計(jì) <b>{{total}}</b></span>
        </span>
      </div>
    </div>
  </div>
</template>

在這段代碼里,使用 v-for 指令分別渲染菜品列表和點(diǎn)餐列表。添加按鈕和刪除按鈕分別綁定 orderFood()removeFood() 方法。最后通過(guò) totalCount 的值是否為 0 來(lái)顯示點(diǎn)餐份數(shù)。

接下來(lái)我們來(lái)實(shí)現(xiàn)點(diǎn)餐頁(yè)面的業(yè)務(wù)邏輯,修改 App.vue 文件中的 script 部分代碼。

<script setup lang="ts">
import { computed, reactive, ref, watch } from 'vue';
// 菜品接口類
interface Food {
  name: string;
  url: string;
  price: number;
}

// 訂單接口類
interface Order {
  name: string;
  price: number;
  count: number;
}

// 菜品數(shù)據(jù)列表
const foodList = reactive<Food[]>([
  { name: '宮保雞丁', url: '/src/assets/gbjd.png', price: 12.0 },
  { name: '魚(yú)香肉絲', url: '/src/assets/yxrs.png', price: 17.0 },
  { name: '紅燒排骨', url: '/src/assets/hspg.png', price: 20.0 },
]);

// 訂單數(shù)據(jù)列表
const orderList = reactive<Order[]>([]);

// 總價(jià)
const total = ref(0);

// 總個(gè)數(shù)
const totalCount = computed((): number => {
  let count = 0;
  orderList.forEach((item: Order) => {
    count += item.count;
  })
  return count;
});

// 點(diǎn)餐函數(shù)
const orderFood = (index: number):void => {
  // 查看當(dāng)前菜品是否已經(jīng)被點(diǎn)
  const isOrdered = orderList.filter((item: Order): boolean => {
    return item.name === foodList[index].name;
  });
  if (isOrdered.length) {
    isOrdered[0].count += 1;
  } else {
    orderList.push({
      name: foodList[index].name,
      price: foodList[index].price,
      count: 1,
    })
  }
};

// 取消點(diǎn)餐操作
const removeFood = (index: number):void => {
  if (orderList[index].count > 0) {
    orderList[index].count -= 1;
  }
  if (orderList[index].count === 0) {
    orderList.splice(index, 1);
  }
};

// 監(jiān)聽(tīng)訂單列表變化
watch(
  () => orderList,
  () => {
    total.value = 0;
    orderList.forEach((order: Order) => {
      total.value += order.count * order.price;
    });
  },
  {deep:true}
);
</script>

這里首先分別定義了 FoodOrder 兩個(gè)類型。然后初始化 foodList、orderListtotal 變量,對(duì)應(yīng)的菜品列表、點(diǎn)餐列表和消費(fèi)總價(jià)。接下來(lái)使用一個(gè) totalCount 計(jì)算屬性統(tǒng)計(jì)總點(diǎn)餐份數(shù)。orderFood() 方法和 removeFood() 方法分別對(duì)應(yīng)模板的添加和刪除按鈕。最后使用偵聽(tīng)器屬性,檢測(cè) orderList 對(duì)象的變化。通過(guò) orderList 數(shù)據(jù)變化來(lái)計(jì)算總點(diǎn)餐花費(fèi)。這樣,一個(gè)簡(jiǎn)單的點(diǎn)餐頁(yè)面就完成了,運(yùn)行效果如下。
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面


??完整代碼(含 CSS 代碼)

<script setup lang="ts">
import { computed, reactive, ref, watch } from 'vue';
// 菜品接口類
interface Food {
  name: string;
  url: string;
  price: number;
}

// 訂單接口類
interface Order {
  name: string;
  price: number;
  count: number;
}

// 菜品數(shù)據(jù)列表
const foodList = reactive<Food[]>([
  { name: '宮保雞丁', url: '/src/assets/gbjd.png', price: 12.0 },
  { name: '魚(yú)香肉絲', url: '/src/assets/yxrs.png', price: 17.0 },
  { name: '紅燒排骨', url: '/src/assets/hspg.png', price: 20.0 },
]);

// 訂單數(shù)據(jù)列表
const orderList = reactive<Order[]>([]);

// 總價(jià)
const total = ref(0);

// 總個(gè)數(shù)
const totalCount = computed((): number => {
  let count = 0;
  orderList.forEach((item: Order) => {
    count += item.count;
  })
  return count;
});

// 點(diǎn)餐函數(shù)
const orderFood = (index: number):void => {
  // 查看當(dāng)前菜品是否已經(jīng)被點(diǎn)
  const isOrdered = orderList.filter((item: Order): boolean => {
    return item.name === foodList[index].name;
  });
  if (isOrdered.length) {
    isOrdered[0].count += 1;
  } else {
    orderList.push({
      name: foodList[index].name,
      price: foodList[index].price,
      count: 1,
    })
  }
};

// 取消點(diǎn)餐操作
const removeFood = (index: number):void => {
  if (orderList[index].count > 0) {
    orderList[index].count -= 1;
  }
  if (orderList[index].count === 0) {
    orderList.splice(index, 1);
  }
};

// 監(jiān)聽(tīng)訂單列表變化
watch(
  () => orderList,
  () => {
    total.value = 0;
    orderList.forEach((order: Order) => {
      total.value += order.count * order.price;
    });
  },
  {deep:true}
);

</script>

<template>
  <div class="food-container">
    <div class="food-wrap">
      <!-- 菜品列表 -->
      <ul class="food-main">
        <li v-for="(item, index) in foodList" :key="item.name">
          <img :src="item.url" class="food-image"/>
          <label>
            <span>{{item.name}}</span>
          </label>
          <button class="btn btn-add" @click="orderFood(index)">添加</button>
          <span class="food-price">價(jià)格 {{item.price}} 元/份</span>
        </li>
      </ul>
      <!-- 點(diǎn)餐列表 -->
      <div class="food-order">
        <ul class="order-main">
          <li class="order-item" v-for="(item, index) in orderList" :key="item.name">
            <label>{{item.name}}</label>
            <div>
              <span class="order-count"> X {{item.count}}</span>
              <button class="btn btn-delete" @click="removeFood(index)">刪除</button>
            </div>
          </li>
        </ul>
      </div>
      <!-- 總消費(fèi)價(jià)格 -->
      <div class="food-total-price">
        <span>
          <span class="total-count">已點(diǎn) {{totalCount}} 份餐</span>
          <span>共計(jì) <b>{{total}}</b></span>
        </span>
      </div>
    </div>
  </div>
</template>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}

.btn {
  display: inline-block;
  padding: 8px 10px;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 14px;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.2),
    0 1px 2px rgba(0, 0, 0, 0.05);
  border-radius: 4px;
}
.btn-add {
  color: #fff;
  background-color: #0d6efd;
  border: none;
}
.btn-delete {
  color: #fff;
  background-color: #dc3545;
  border: none;
}
.btn-delete:hover {
  color: #fff;
  background-color: #bb2d3b;
}
.btn-add:hover {
  color: #fff;
  background-color: #0b5ed7;
}

.food-container {
  width: 600px;
  margin: 40px auto;
}
.food-wrap {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.food-price {
  float: right;
  margin-right: 10px;
}
.food-main {
  margin-left: 0px;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 0px;
}

.food-image {
  float: left;
  height: 100%;
}
.order-main {
  margin-left: 0px;
  padding: 0px;
}

.order-main li {
  display: flex;
}
.order-item {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

li {
  list-style: none;
  height: 36px;
  line-height: 36px;
  padding: 0 5px;
}
.food-main li label {
  float: left;
  cursor: pointer;
  vertical-align: middle;
  margin-right: 6px;
  position: relative;
  top: -1px;
  font-weight: bold;
  margin-left: 10px;
}

.food-main li button {
  float: right;
  margin-top: 3px;
}
li:before {
  content: initial;
}
li:last-child {
  border-bottom: none;
}

.total-count {
  font-size: 0.8rem;
  color: #6c757d;
  margin-right: 21px;
}
.food-main li:hover {
  background-color: #ddd;
}
.order-count {
  margin-right: 30px;
}

.food-order {
  line-height: 40px;
  padding-left: 6px;
  margin-top: 5px;
}
.food-order label {
  display: inline-block;
  margin-right: 20px;
  cursor: pointer;
}
.food-total-price {
  display: flex;
  justify-content: end;
}

</style>

??最后

到此文章結(jié)束,這就是 Vue3 計(jì)算屬性和偵聽(tīng)器 (computed、watch) 實(shí)戰(zhàn)的全部?jī)?nèi)容了,通過(guò)這篇文章我們從零到一制作了一個(gè)簡(jiǎn)易點(diǎn)餐頁(yè)面,這樣可以提高我們使用計(jì)算屬性和偵聽(tīng)器的熟練程度。
Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-493986.html

到了這里,關(guān)于Vue3 計(jì)算屬性和偵聽(tīng)器實(shí)戰(zhàn)(computed、watch)——簡(jiǎn)易點(diǎn)餐頁(yè)面的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深入與淺談 Vue 中計(jì)算屬性和偵聽(tīng)器的區(qū)別和使用(Vue3版本為例)

    深入與淺談 Vue 中計(jì)算屬性和偵聽(tīng)器的區(qū)別和使用(Vue3版本為例)

    #五一技術(shù)創(chuàng)作馬拉松# 計(jì)算屬性 computed 和偵聽(tīng)器 watch 都是 Vue.js 框架中用來(lái)響應(yīng)式更新視圖的重要概念。在 Vue 項(xiàng)目開(kāi)發(fā)中,這兩個(gè)技術(shù)點(diǎn)是非常重要的,同時(shí)也是 Vue 基礎(chǔ)中不可缺少的知識(shí)點(diǎn)。在面試中,計(jì)算屬性 computed 和偵聽(tīng)器 watch 也是經(jīng)常出現(xiàn)的考點(diǎn),作為前端開(kāi)發(fā)也

    2024年02月07日
    瀏覽(24)
  • Vue學(xué)習(xí)-計(jì)算屬性和偵聽(tīng)器

    1、計(jì)算屬性的定義和原理 1、定義:要用的屬性不存在,要通過(guò)已有屬性計(jì)算得來(lái)。 2、原理:底層借助了Objcet.defineproperty方法提供的getter和setter。 3、get函數(shù)什么時(shí)候執(zhí)行? ??(1) 初次讀取時(shí)會(huì)執(zhí)行一次。 ??(2)當(dāng)依賴的數(shù)據(jù)發(fā)生改變時(shí)會(huì)被再次調(diào)用。 4、優(yōu)勢(shì):與

    2023年04月18日
    瀏覽(28)
  • VUE教程-基礎(chǔ)-計(jì)算屬性和偵聽(tīng)器

    模板內(nèi)的表達(dá)式非常便利,但是設(shè)計(jì)它們的初衷是用于簡(jiǎn)單運(yùn)算的。在模板中放入太多的邏輯會(huì)讓模板過(guò)重且難以維護(hù)。例如: 在這個(gè)地方,模板不再是簡(jiǎn)單的聲明式邏輯。你必須看一段時(shí)間才能意識(shí)到,這里是想要顯示變量? message ?的翻轉(zhuǎn)字符串。當(dāng)你想要在模板中的多

    2024年02月17日
    瀏覽(26)
  • 二、基礎(chǔ)篇 vue計(jì)算屬性和偵聽(tīng)器

    模板內(nèi)的表達(dá)式非常便利,但是設(shè)計(jì)它們的初衷是用于簡(jiǎn)單運(yùn)算的。在模板中放入太多的邏輯會(huì)讓模板過(guò)重且難以維護(hù)。例如: 在這個(gè)地方,模板不再是簡(jiǎn)單的聲明式邏輯。你必須看一段時(shí)間才能意識(shí)到,這里是想要顯示變量? message ?的翻轉(zhuǎn)字符串。當(dāng)你想要在模板中的多

    2024年01月18日
    瀏覽(21)
  • 【源碼系列#04】Vue3偵聽(tīng)器原理(Watch)

    專欄分享:vue2源碼專欄,vue3源碼專欄,vue router源碼專欄,玩具項(xiàng)目專欄,硬核??推薦?? 歡迎各位ITer關(guān)注點(diǎn)贊收藏?????? 偵聽(tīng)一個(gè)或多個(gè)響應(yīng)式數(shù)據(jù)源,并在數(shù)據(jù)源變化時(shí)調(diào)用所給的回調(diào)函數(shù) 第一個(gè)參數(shù)可以是不同形式的“數(shù)據(jù)源”:它可以是一個(gè) ref (包括計(jì)算屬性

    2024年02月04日
    瀏覽(94)
  • Vue3前端開(kāi)發(fā),watch數(shù)據(jù)偵聽(tīng)器的立即執(zhí)行

    Vue3前端開(kāi)發(fā),watch數(shù)據(jù)偵聽(tīng)器的立即執(zhí)行

    Vue3前端開(kāi)發(fā),watch數(shù)據(jù)偵聽(tīng)器的立即執(zhí)行!實(shí)際上,我們可以通過(guò)回調(diào)函數(shù)的后面,再追加一個(gè)對(duì)象,來(lái)設(shè)置這個(gè)參數(shù),immediate:true.來(lái)實(shí)現(xiàn)一種立即執(zhí)行的效果。在頁(yè)面記載完成后,馬上就會(huì)執(zhí)行一次watch. 如上所示,我們?cè)诨卣{(diào)函數(shù)的后面,追加了一個(gè)參數(shù),是一個(gè)對(duì)象類型

    2024年01月18日
    瀏覽(28)
  • Vue3前端開(kāi)發(fā),watch偵聽(tīng)器的深度監(jiān)聽(tīng)和精確監(jiān)聽(tīng)

    Vue3前端開(kāi)發(fā),watch偵聽(tīng)器的深度監(jiān)聽(tīng)和精確監(jiān)聽(tīng)

    Vue3前端開(kāi)發(fā),watch偵聽(tīng)器的深度監(jiān)聽(tīng)和精確監(jiān)聽(tīng)!今天和大家分享的內(nèi)容是,關(guān)于watch的深度偵聽(tīng)和精確監(jiān)聽(tīng)。 首先看一下,第一個(gè)案例,練習(xí)的是,深度監(jiān)聽(tīng)的效果。默認(rèn)是淺的偵聽(tīng),是不會(huì)觸發(fā)回調(diào)函數(shù)的。 如圖,當(dāng)我們點(diǎn)擊按鈕,修改num值的時(shí)候,觸發(fā)了回調(diào)函數(shù),在

    2024年01月23日
    瀏覽(20)
  • Web前端 ---- 【Vue3】computed計(jì)算屬性和watch偵聽(tīng)屬性(偵聽(tīng)被ref和reactive包裹的數(shù)據(jù))

    Web前端 ---- 【Vue3】computed計(jì)算屬性和watch偵聽(tīng)屬性(偵聽(tīng)被ref和reactive包裹的數(shù)據(jù))

    目錄 前言 computed watch watch偵聽(tīng)ref數(shù)據(jù) ref簡(jiǎn)單數(shù)據(jù)類型 ref復(fù)雜數(shù)據(jù)類型 watch偵聽(tīng)reactive數(shù)據(jù) 本文介紹在vue3中的computed計(jì)算屬性和watch偵聽(tīng)屬性。介紹watch如何偵聽(tīng)被ref和reactive包裹的數(shù)據(jù) 在vue3中,計(jì)算屬性computed也是組合式api,也就是說(shuō)要先引入,再在setup中使用 語(yǔ)法 完整:

    2024年01月18日
    瀏覽(46)
  • Vue——偵聽(tīng)器

    目錄 基本示例? 深層偵聽(tīng)器? 即時(shí)回調(diào)的偵聽(tīng)器? 回調(diào)的觸發(fā)時(shí)機(jī)? this.$watch()? 停止偵聽(tīng)器? ? ? ? ?計(jì)算屬性允許我們聲明性地計(jì)算衍生值。然而在有些情況下,我們需要在狀態(tài)變化時(shí)執(zhí)行一些“副作用”:例如更改 DOM,或是根據(jù)異步操作的結(jié)果去修改另一處的狀態(tài)

    2023年04月13日
    瀏覽(23)
  • Vue中watch偵聽(tīng)器用法

    watch 需要偵聽(tīng)特定的數(shù)據(jù)源,并在單獨(dú)的回調(diào)函數(shù)中執(zhí)行副作用 watch第一個(gè)參數(shù)監(jiān)聽(tīng)源 watch第二個(gè)參數(shù)回調(diào)函數(shù)cb(newVal,oldVal) watch第三個(gè)參數(shù)一個(gè)options配置項(xiàng)是一個(gè)對(duì)象{ immediate :true //是否立即調(diào)用一次 deep :true //是否開(kāi)啟深度監(jiān)聽(tīng) flush :“pre” // 更新時(shí)機(jī) } flush配置項(xiàng) p

    2024年02月06日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包