久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

第六節:Vue3 開發WordPress設置選項 - 添加對象傳值和數據校驗

本節解決了數據量過大時的結構化傳值問題,以及給出了簡單的數據校驗例子,通過本系列教程,相信您已經可以開發自己的設置選項了。

承接上一節,我們使用 Vite 對JS資源進行打包后,優化了不少性能,但也有不少麻煩還沒有解決,這次來做個收尾。

  • 本系列代碼分享在 GitHub 中,希望能幫助大家理解
  • https://github.com/muze-page/vue-spa

流程

第六節:Vue3 開發WordPress設置選項 - 添加對象傳值和數據校驗

多對象傳值

在上一節的 Option.vue 文件中,有這樣的代碼

const datas = reactive({
  dataOne: "",
  dataTwo: "",
  dataName: [],
  dataImage: "",
  dataSelectedImage: "",
});

看起來沒啥問題,但我現在需要開發2個 Tab 選項,每個選項中都有3個選項需要填寫,類似這樣

  let datas = reactive({

      npc_zfb_appid: "",
      npc_zfb_private_key: "",
      npc_zfb_public_key: "",

      npc_wx_mch_id: "",
      npc_wx_cert_api: "",
      npc_wx_cert_key: "",

  });

嗯,還是沒啥問題,但是,我要是有10個 Tab 選項呢?

如果你只是低頭跑,你總會撞上山的

聰明的你想到了,可以這樣啊

  let datas = reactive({

    zfb: {
      npc_zfb_appid: "",
      npc_zfb_private_key: "",
      npc_zfb_public_key: "",
    },
    wx: {
      npc_wx_mch_id: "",
      npc_wx_cert_api: "",
      npc_wx_cert_key: "",
    },
    npc_refund_user: [],
  });

有其他需求再接著分,或者分了再分。

這當然沒問題,但我們的獲取選項的接口就不夠用了,
需要修改 interface.php 文件中的函數 get_option_by_RestAPI() 為以下內容

//讀取Option
//支持數組類數據請求
function get_option_by_RestAPI($data)
{
    // 將輸入數據轉換成數組類型 
    $dataArray = json_decode($data->get_body(), true);
    $return = array();
    // 遍歷數組,檢查每個元素是否為對象
    foreach ($dataArray as $option_name => $value) {
        // 初始化當前選項的值數組
        $option_value = array();
        // 如果當前元素是一個非空數組,則遍歷其中的每個字段
        if (is_array($value) && !empty($value)) {
            foreach ($value as $field_name => $field_value) {
                // 獲取指定選項的值,如果不存在,則使用空字符串代替
                $option_value[$field_name] = get_option($field_name, '');
            }
            // 將當前選項及其值添加到返回數組中
            $return[$option_name] = $option_value;
        } else {
            // 如果當前元素非數組或數組為空,獲取指定選項的值
            $return[$option_name] = get_option($option_name, '');
        }
    }
    return $return; // 返回所有選項的鍵值對
}

這里面進行了若干次判斷,并進行對應的處理,以保證我們可以正常是使用上面提到的數據結構。

瀏覽器的響應結構就是這樣的

第六節:Vue3 開發WordPress設置選項 - 添加對象傳值和數據校驗

數據校驗

如果我們需要的是用戶名,但使用者卻填寫了手機號,這時,會導致拿不到需要的數據,就需要在數據提交前進行數據校驗,來保證數據的正確性。

代碼的使用者是一匹野馬,你不能指望他按照你的想法去跨紅色的欄

為了便于演示,我們使用方便的正則來進行數據校驗。分別是姓名和手機號

準備數據

我們修改 Option.vue 文件,準備兩個變量用來存儲我們的選項值

//存儲選項值
const datas = reactive({
//省略
  check: {
    name: "",
    phone: "",
  },
});

這里,我使用了結構化的數據,便于數據管理。

數據獲取里也得加上

//獲取數據
const get_option = () => {
  axios
    .post(dataLocal.route + "pf/v1/get_option", datas, {
      headers: {
        "X-WP-Nonce": dataLocal.nonce,
        "Content-Type": "application/json",
      },
    })
    .then((response) => {
      //省略
      datas.check.name = data.check.name;
      datas.check.phone = data.check.phone;
    })
    .catch((error) => {
      window.alert("連接服務器失敗或后臺讀取出錯!數據讀取失敗");
      console.log(error);
    });
};

這樣,就能在頁面初始加載時,拿到選項的默認值了

準備正則

我們準備兩個計算屬性,通過正則來判斷,并輸出對應的布爾值

//驗證名稱
const isName = computed(() => {
  // 正則表達式驗證名字,2到6個中文字符
  const reg = /^[u4e00-u9fa5]{2,6}$/;
  return reg.test(datas.check.name);
});
//驗證電話號碼
const isPhone = computed(() => {
  // 正則表達式驗證電話號碼
  const reg = /^1[3456789]d{9}$/;
  return reg.test(datas.check.phone);
});

他會持續的拿到輸入的值,并進行判斷輸出的。

準備模版

我們在模版文件中,將對應的值用上

  <h3>數據校驗</h3>
  姓名:<input type="text" v-model="datas.check.name" />
  <p v-if="!isName" class="check">格式錯誤 - 必須為兩字到六字中文</p>
  <br />
  手機號:<input type="text" v-model="datas.check.phone" />
  <p v-if="!isPhone" class="check">格式錯誤 - 必須是1開頭的11位手機號</p>
  <hr />

這樣,當拿到的值符合正則需求時,計算函數輸出 true ,然后 if 反向判斷為 false ,不顯示警告內容。

效果

執行打包命令后,刷新 VueSpa 菜單可查看效果

第六節:Vue3 開發WordPress設置選項 - 添加對象傳值和數據校驗

提示信息的外觀,我加了點小小的樣式。

還有以下幾點需要改進

  • 點擊保存按鈕進行數據校驗
  • 校驗通過才能正常報存
  • 將校驗數據模塊化,可復用

當然,基于 Node 生態,您還可以通過諸多現成的校驗框架更方便的實現同樣的功能。

總結

現在,前后端進行了分離,后端只需負責存儲數據,前端負責準備和展示數據即可。大大提升了代碼的可維護性和健壯性,降低了瀏覽器的性能開銷。

當然,在前端工程化的路上,你還有無限多的可能,待您探索。

本系列章節核心內容到此為止,后續有更棒的想法,會持續分享給大家的。

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      日韩福利视频导航| 国产亚洲精品久| 免费日韩伦理电影| 亚洲视频免费在线| 国产清纯白嫩初高生在线观看91 | 看电影不卡的网站| 日本最新不卡在线| 日韩精品一级二级| 午夜精品久久久久久久99樱桃| 亚洲精品中文字幕在线观看| 亚洲日本乱码在线观看| 亚洲欧美日韩系列| 亚洲乱码精品一二三四区日韩在线| 国产精品国产三级国产专播品爱网| 国产午夜亚洲精品午夜鲁丝片 | 91麻豆精品国产综合久久久久久| 欧美三级资源在线| 欧美一级视频精品观看| 精品久久人人做人人爱| 久久久国产精品午夜一区ai换脸| 国产亚洲综合在线| 国产欧美视频一区二区| 国产精品成人在线观看| 亚洲自拍另类综合| 丝袜美腿一区二区三区| 精品一二三四区| 成人在线一区二区三区| 成人黄色在线看| 色妞www精品视频| 欧美视频精品在线| 精品99久久久久久| 国产精品免费视频一区| 一区二区三区在线看| 人妖欧美一区二区| 国产超碰在线一区| 色哟哟精品一区| 欧美日韩国产综合一区二区三区| 欧美一区二区免费| 亚洲人妖av一区二区| 偷拍亚洲欧洲综合| 国产成人日日夜夜| 一本色道久久加勒比精品| 欧美精品第1页| 亚洲国产精品成人综合| 夜夜精品浪潮av一区二区三区| 麻豆视频观看网址久久| caoporn国产一区二区| 欧美日本一区二区三区| 中文字幕免费观看一区| 日韩成人av影视| 国产aⅴ综合色| 欧美久久久久久久久| 国产精品欧美经典| 老司机免费视频一区二区 | 精品国产伦理网| 亚洲综合小说图片| 国产高清不卡二三区| 欧美精三区欧美精三区| 亚洲天堂成人在线观看| 国产福利一区在线| 日韩欧美国产综合在线一区二区三区| 亚洲日本丝袜连裤袜办公室| 国产成a人亚洲精| 久久久久国产一区二区三区四区 | 亚洲天堂精品视频| 懂色av一区二区三区免费看| 欧美一区二区在线播放| 亚洲午夜精品一区二区三区他趣| 成人午夜在线免费| 国产日韩欧美亚洲| 蜜桃久久久久久| 在线播放国产精品二区一二区四区 | 亚洲欧洲精品天堂一级| 国产一区二区三区黄视频| 欧美一区二区大片| 日韩高清电影一区| 欧美日韩亚洲综合在线| 亚洲成在人线免费| 精品污污网站免费看| 亚洲午夜三级在线| 欧美久久久久久蜜桃| 日韩avvvv在线播放| 91精品国产福利在线观看| 日韩精品一级二级| 欧美成人女星排名| 久久精品国产在热久久| 日韩精品一区二区三区视频播放 | 欧美一级xxx| 日韩av一区二区在线影视| 欧美一a一片一级一片| 亚洲小少妇裸体bbw| 91精品办公室少妇高潮对白| 一区二区三区四区五区视频在线观看| 97精品久久久午夜一区二区三区 | 欧美色成人综合| 亚洲综合久久久久| www.视频一区| 综合久久综合久久| 欧美日韩国产一级片| 日韩一区精品视频| 精品国产乱码久久久久久1区2区| 精品一区二区三区免费| 国产视频一区二区三区在线观看| 国产成人精品免费在线| 亚洲欧美日韩一区二区三区在线观看| 色一区在线观看| 日韩二区三区四区| 久久久精品tv| 在线免费观看视频一区| 全国精品久久少妇| 中文字幕乱码亚洲精品一区| 在线国产电影不卡| 色94色欧美sute亚洲线路二| 天天影视网天天综合色在线播放| 欧美哺乳videos| 99精品热视频| 视频一区二区中文字幕| 国产亚洲制服色| 在线国产亚洲欧美| 韩日av一区二区| 亚洲精品免费在线| 精品久久久久久最新网址| 成人高清免费在线播放| 日韩经典中文字幕一区| 国产精品你懂的在线| 9191精品国产综合久久久久久| 国产一区二区精品久久99| 成人免费一区二区三区在线观看| 欧美年轻男男videosbes| 国产成人精品免费看| 亚洲国产一区二区a毛片| 久久综合色之久久综合| 欧美天堂亚洲电影院在线播放| 美女一区二区三区在线观看| 日韩午夜在线播放| 99re热视频这里只精品 | 色综合久久久久久久久久久| 日本不卡在线视频| 一区二区三区四区中文字幕| 国产欧美一区二区精品忘忧草| 欧美一区二区免费| 欧美在线free| 99在线精品观看| 国产suv精品一区二区883| 日本91福利区| 视频一区视频二区中文| 亚洲精品日韩综合观看成人91| 久久伊99综合婷婷久久伊| 欧美亚洲一区三区| 色婷婷亚洲综合| 91麻豆精品在线观看| 岛国一区二区三区| 黄色精品一二区| 久久精品999| 国产一区二区视频在线播放| 男人操女人的视频在线观看欧美| 一区二区三区久久久| 国产精品久久久久aaaa| 日本一区二区三区久久久久久久久不 | 亚洲精选视频免费看| 欧美激情一区二区| 国产日韩欧美精品综合| 久久久电影一区二区三区| 精品国产乱码久久久久久老虎 | 蜜臀久久99精品久久久久宅男 | 欧美精三区欧美精三区| 欧美日韩免费高清一区色橹橹 | 日本伊人色综合网| 婷婷丁香久久五月婷婷| 丝袜亚洲另类欧美| 青椒成人免费视频| 免费观看日韩av| 激情综合色丁香一区二区| 毛片不卡一区二区| 国产成人综合在线| 成人免费视频一区二区| 91视视频在线观看入口直接观看www| 成人app网站| 色88888久久久久久影院野外| 91国偷自产一区二区三区成为亚洲经典| 一本一本久久a久久精品综合麻豆| 色久优优欧美色久优优| 欧美日韩高清影院| 日韩欧美黄色影院| 国产精品午夜电影| 一区二区三区四区亚洲| 青青草成人在线观看| 国产成人精品一区二| 色婷婷综合久久| 日韩精品一区二区三区老鸭窝 | **欧美大码日韩| 亚洲国产精品久久不卡毛片 | 欧美在线小视频| 日韩亚洲欧美综合| 国产精品丝袜一区| 午夜视黄欧洲亚洲| 国产成人精品三级麻豆| 欧美日韩一二三| 国产精品视频一二三区| 尤物在线观看一区|