久久精品国产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国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    麻豆乱码国产一区二区三区| 国产午夜精品全部视频播放| 亚洲伊人观看| 亚洲欧洲日韩在线| 国产网站欧美日韩免费精品在线观看| 欧美不卡福利| 久久伊伊香蕉| 欧美一级视频精品观看| 一区二区三区蜜桃网| 伊人狠狠色j香婷婷综合| 国产乱子伦一区二区三区国色天香| 欧美成人午夜激情在线| 久久久国产视频91| 亚欧成人在线| 午夜亚洲性色视频| 亚洲综合视频1区| 亚洲在线观看视频| 亚洲视频在线观看三级| 亚洲精品麻豆| 亚洲人成网站999久久久综合| 狠狠入ady亚洲精品| 国产综合在线视频| 合欧美一区二区三区| 国产综合色在线视频区| 国产日韩精品视频一区二区三区| 欧美午夜视频在线| 国产精品乱码| 国产午夜精品理论片a级探花| 国产精品久久久久久久免费软件 | 一区二区欧美亚洲| 亚洲精品免费在线观看| 亚洲六月丁香色婷婷综合久久| 亚洲黄网站在线观看| 在线观看亚洲专区| 亚洲精品国产精品乱码不99| 亚洲经典在线| 一区二区av在线| 亚洲综合精品| 久久天天躁夜夜躁狠狠躁2022| 久久久久久日产精品| 老鸭窝毛片一区二区三区| 免费看黄裸体一级大秀欧美| 欧美xxx成人| 国产精品国产福利国产秒拍| 国产精品中文字幕欧美| 国产午夜亚洲精品羞羞网站 | 国产综合亚洲精品一区二| 狠狠色丁香久久婷婷综合_中| 在线免费观看一区二区三区| 亚洲剧情一区二区| 性欧美大战久久久久久久久| 麻豆九一精品爱看视频在线观看免费| 欧美日本韩国一区二区三区| 国产精品主播| 亚洲欧洲综合另类| 亚洲欧美综合精品久久成人| 免费的成人av| 国产精品一区二区三区免费观看| 尤物yw午夜国产精品视频明星| 亚洲看片一区| 久久亚洲美女| 国产精品视频在线观看| 亚洲国产视频直播| 欧美一区视频在线| 欧美日韩国产成人高清视频| 国产在线播精品第三| 亚洲色图自拍| 免费观看成人| 国产一区二区剧情av在线| 日韩一区二区久久| 久久久久成人精品免费播放动漫| 欧美日韩中文字幕在线视频| 伊人久久大香线| 香港久久久电影| 欧美精品一区二区久久婷婷| 狠狠色狠狠色综合日日小说| 亚洲欧美视频一区二区三区| 欧美精品日韩综合在线| 国外成人免费视频| 午夜精品视频网站| 欧美丝袜一区二区三区| 亚洲高清毛片| 久久久之久亚州精品露出| 国产欧亚日韩视频| 亚洲欧美激情视频在线观看一区二区三区 | 欧美一站二站| 国产精品乱人伦中文| 一本色道久久综合亚洲精品婷婷 | 夜色激情一区二区| 欧美成人午夜激情视频| 136国产福利精品导航网址应用| 欧美一区二区视频免费观看| 国产精品一区二区在线观看网站| 夜夜嗨av一区二区三区中文字幕 | 中文在线不卡视频| 欧美日韩国产一中文字不卡| 亚洲人精品午夜| 欧美精品国产精品日韩精品| 亚洲精品久久久久久久久久久久久 | 欧美日韩视频在线第一区| 亚洲精品久久久久久一区二区 | 激情综合电影网| 久久一本综合频道| 亚洲国产婷婷香蕉久久久久久| 免费欧美网站| 亚洲精品一区二区三区99| 欧美激情1区| 亚洲午夜羞羞片| 国产精品日日摸夜夜摸av| 性色一区二区三区| 在线观看亚洲a| 欧美激情一区二区三区成人| 在线性视频日韩欧美| 国产精品久久久久久久久久免费| 亚洲欧美日韩精品久久亚洲区| 国产精品自拍在线| 久久亚洲午夜电影| 日韩亚洲视频在线| 国产精一区二区三区| 美女成人午夜| 亚洲天堂第二页| 国产自产精品| 欧美日韩一区二区三区四区在线观看 | 久久国产精品色婷婷| 亚洲国产精品成人综合| 欧美日韩国产成人在线免费| 亚洲欧洲99久久| 在线观看91精品国产麻豆| 欧美日韩激情小视频| 欧美一区二区在线| 亚洲国产精品成人| 国产精品日韩一区二区| 另类激情亚洲| 欧美一级专区| 艳妇臀荡乳欲伦亚洲一区| 国产日韩欧美在线| 欧美日韩欧美一区二区| 久久亚洲精品一区| 亚洲男人的天堂在线| 亚洲黄网站黄| 激情av一区| 国产伦精品免费视频 | 欧美老女人xx| 久久人人97超碰人人澡爱香蕉| 亚洲午夜在线| 99精品国产99久久久久久福利| 加勒比av一区二区| 国产精品一区二区久激情瑜伽| 欧美韩国在线| 乱码第一页成人| 久久久久久久尹人综合网亚洲| 99国产一区| 最新亚洲电影| 亚洲国产黄色片| 一区视频在线| 悠悠资源网亚洲青| 国产日产精品一区二区三区四区的观看方式| 欧美激情一区二区三区高清视频 | 久久综合久久久久88| 久久国产手机看片| 欧美综合77777色婷婷| 亚洲欧美清纯在线制服| 亚洲在线视频网站| 亚洲视频播放| 亚洲线精品一区二区三区八戒| 亚洲日本精品国产第一区| 91久久精品久久国产性色也91 | 欧美精品福利在线| 欧美电影打屁股sp| 欧美精品日韩精品| 欧美日韩国产精品成人| 欧美人与禽猛交乱配| 欧美日韩福利视频| 欧美视频久久| 国产精品毛片| 国产亚洲欧洲997久久综合| 国产一区二区精品久久91| 国产一区视频网站| 亚洲第一搞黄网站| 99精品热视频| 午夜精品剧场| 久久午夜电影| 欧美精品亚洲二区| 国产精品日日摸夜夜摸av| 国产一区二区三区在线观看免费 | 亚洲成人在线网站| 99精品欧美一区二区三区综合在线| 一本一本a久久| 欧美一区二区三区免费观看视频 | 一区二区三区在线不卡| 亚洲欧洲精品一区二区三区不卡 | 性色一区二区| 蜜臀a∨国产成人精品| 欧美日韩在线三级| 韩国av一区二区三区在线观看| 亚洲国产精品悠悠久久琪琪| 一区二区三区视频观看| 久久精品国产99国产精品澳门| 欧美二区在线观看| 国产一区二区三区成人欧美日韩在线观看 |