久久精品国产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;">

      国产精品白丝jk黑袜喷水| 成人app在线观看| 国产成人精品1024| 国产亚洲欧美在线| 成人h精品动漫一区二区三区| 亚洲国产精品99久久久久久久久| 懂色一区二区三区免费观看| 亚洲精品高清在线| 欧美一级片在线看| 粉嫩一区二区三区性色av| 色婷婷久久久综合中文字幕 | www.欧美日韩| 亚洲精品乱码久久久久久黑人| 欧美麻豆精品久久久久久| 国产成人在线视频免费播放| 亚洲一区二区精品视频| 欧美一区二区三区免费| 成人性色生活片| 美女看a上一区| 中文字幕日韩一区| 日韩精品一区二区三区四区视频 | 国产东北露脸精品视频| 亚洲一区二区三区中文字幕| 久久伊99综合婷婷久久伊| 欧美综合久久久| 成人国产亚洲欧美成人综合网 | 欧美日韩一区二区三区四区五区| 麻豆免费精品视频| 亚洲在线观看免费视频| 中文字幕免费不卡在线| 日韩欧美在线123| 欧美日韩一区在线观看| 91丨九色丨尤物| 国产成人午夜精品5599| 九色综合狠狠综合久久| 蜜臀av在线播放一区二区三区| 亚洲夂夂婷婷色拍ww47| 亚洲人成7777| 亚洲免费看黄网站| 亚洲精品成人在线| 国产精品久久精品日日| 国产精品天干天干在线综合| 久久奇米777| 欧美极品少妇xxxxⅹ高跟鞋| 国产亚洲综合性久久久影院| 亚洲精品一区在线观看| 久久亚洲精华国产精华液| 亚洲精品在线观看网站| 日韩欧美亚洲国产精品字幕久久久 | 亚洲午夜在线视频| 一区二区三区蜜桃| 亚洲乱码中文字幕综合| 亚洲男人的天堂在线观看| 国产精品久久看| 亚洲乱码日产精品bd| 亚洲一二三四久久| 亚洲午夜激情网页| 日日夜夜精品视频天天综合网| 亚洲国产日韩av| 日韩国产精品久久久| 美女视频一区在线观看| 国产老肥熟一区二区三区| 国产不卡在线播放| 色999日韩国产欧美一区二区| 欧美体内she精视频| 日韩一级片在线观看| 久久免费国产精品| 国产精品护士白丝一区av| 亚洲一区二区三区四区在线免费观看| 午夜电影网亚洲视频| 久久精品国产在热久久| 成人激情免费视频| 7777精品伊人久久久大香线蕉最新版| 日韩你懂的在线观看| 国产精品久久毛片| 日韩和欧美一区二区| 国产91丝袜在线18| 欧美日韩精品系列| 国产欧美日韩在线视频| 亚洲国产综合色| 国产成人综合在线| 欧美理论片在线| 亚洲国产精品成人综合色在线婷婷| 成人欧美一区二区三区1314| 午夜在线成人av| 懂色av噜噜一区二区三区av | 91丨九色porny丨蝌蚪| 欧美精品 国产精品| 欧美国产综合色视频| 性久久久久久久久| 国产成人av一区二区三区在线| 91猫先生在线| 久久色成人在线| 免费观看在线综合| 色偷偷成人一区二区三区91| 久久嫩草精品久久久精品| 午夜久久久久久电影| 成人av动漫网站| 精品欧美黑人一区二区三区| 亚洲一区二区三区免费视频| av亚洲精华国产精华| 久久久亚洲午夜电影| 美女国产一区二区三区| 欧美三级中文字| 亚洲乱码国产乱码精品精的特点| 国内成人免费视频| 欧美一区二区免费视频| 日韩在线卡一卡二| 欧美精品视频www在线观看| 一区二区三区四区不卡在线| 91丨九色porny丨蝌蚪| 日本一区二区电影| 国产成人免费在线观看不卡| 日韩欧美精品在线| 免费在线一区观看| 欧美一区二区三区免费视频| 亚洲国产日韩精品| 在线免费av一区| 一区二区三区四区乱视频| 色综合久久综合中文综合网| 亚洲色图视频网站| 一本大道久久a久久综合| 亚洲色图都市小说| 99精品1区2区| 亚洲黄色小说网站| 在线中文字幕一区二区| 亚洲午夜免费电影| 在线播放国产精品二区一二区四区| 亚洲一区在线观看免费| 欧美日韩第一区日日骚| 蜜臀av亚洲一区中文字幕| 精品久久久三级丝袜| 精品一区二区免费看| 国产亚洲欧美在线| 99久久伊人网影院| 香蕉成人啪国产精品视频综合网| 欧美高清性hdvideosex| 国产一区91精品张津瑜| 亚洲欧洲日产国产综合网| 色综合 综合色| 午夜精品福利久久久| 精品久久久久久无| 99在线精品观看| 一区二区成人在线视频| 777久久久精品| 国产成人精品免费看| 一区二区三区在线免费观看| 91精品国产美女浴室洗澡无遮挡| 久久福利资源站| 亚洲图片激情小说| 欧美一区二区三区视频在线| 岛国精品在线播放| 成人一区二区三区视频 | 亚洲亚洲精品在线观看| 欧美日韩国产三级| 国产自产v一区二区三区c| www国产亚洲精品久久麻豆| 波多野结衣在线一区| 亚洲午夜精品久久久久久久久| 欧美成人高清电影在线| 91片黄在线观看| 极品美女销魂一区二区三区| 亚洲同性同志一二三专区| 91精品国产手机| 一道本成人在线| 国产成人免费视频精品含羞草妖精 | 亚洲精品国产无天堂网2021| 菠萝蜜视频在线观看一区| 精品久久久久久久久久久久包黑料| 日本一区二区三区在线不卡| 欧美年轻男男videosbes| 成人黄色在线视频| 久久99精品久久久久| 亚洲一区二区欧美日韩| 国产精品午夜电影| 久久综合久久鬼色中文字| 欧美高清视频一二三区| 色老头久久综合| 丰满少妇久久久久久久| 精品一二三四区| 青青草97国产精品免费观看无弹窗版| 国产精品国模大尺度视频| 久久久久久久久99精品| 日韩视频一区二区在线观看| 欧美视频在线观看一区二区| 91美女在线观看| av电影天堂一区二区在线| 国产白丝网站精品污在线入口| 美腿丝袜亚洲综合| 天天操天天综合网| 亚洲成人av电影| 亚洲大片免费看| 日本成人在线不卡视频| 国产日产欧产精品推荐色 | 国产乱对白刺激视频不卡| 久久精品国产久精国产| 精品中文av资源站在线观看| 美女一区二区久久| 经典三级在线一区| 国产一区二区三区香蕉|