iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
Vue.js

試試用Vue建立網站吧系列 第 13

Day13-試試Vue3-建立餐廳API

  • 分享至 

  • xImage
  •  

同「Day5-試試Vue3-建立會員API」篇採用 json-server 方式建立 API。

(1)新增 restaurant.json 檔案建立資料
專案根目錄/ db 資料夾底下新增 restaurant.json 的 json 格式檔案於該資料夾。

檔案內可以先定義餐廳的第一筆資料,這步驟是在本地端建立。
資料內容為品牌合適受眾、品牌名稱、地址等屬性。

{
  "restaurants": [
    {
      "brandName": "有點義式麵",
      "address": "台北市大安區師大路39巷",
      "type": "學生族群",
      "id": "1"
    }
  ]
}

(2)終端機啟動 JSON API 伺服器
目前專案有會員和餐廳兩個 API ,同一台電腦不能運行兩個相同通訊埠的 json-server ,必須將兩個 json-server 指派不同的通訊埠從而避免衝突。

開啟兩個(windows系統)命令提示字元分別執行以下指令。或是做一個批次檔來執行。

cd 路徑...\db
json-server --watch db.json --port 3000
cd 路徑...\db
json-server --watch restaurant.json --port 3001

註:一定要在執行「啟動 JSON API 伺服器」情況下才能連上/執行這些 API 。

(3)新增口袋餐廳頁面檔案
路徑 src / views / front 底下新增 PocketView.vue 檔案。 html 架構先建立同「Day8-試試Vue3-會員登入後轉跳主頁」的導覽(nav)。

<template>
...
  <div>
    <a href="#" @click="test">點我測試餐廳API</a>
  </div>
...
</template>

為測試 axios.get() 餐廳 API 是否正確, html 的導覽下方加個超連結 <a></a> 標籤去呼叫 <script></script> 裡的 test() 函式去取得餐廳 API 。

<script>
import axios from "axios";

export default {
  data() {
    return {
      brandName: "",
      address: "",
      type: "",
    };
  },
  methods: {
    test() {
      axios
        .get("http://localhost:3001/restaurants")
        .then((res) => {
          // 請求成功會觸發/執行這個 function 函式
          console.log(res);
        })
        .catch((error) => {
          // 請求失敗則觸發/執行這個 function 函式
          console.log(error);
        });
    }
  },
};
</script>

資料成功回傳。
資料成功回傳

(4)新增路由
路徑 src / router / index.js 寫入以下語法將口袋餐廳頁面建為新路由。登入後才可到會員功能頁所以路徑是 login / pocket 。

const router = createRouter({
  ...
  routes: [
  ...
    {
      path: '/login/pocket',
      component: () => import('../views/front/PocketView.vue')
    },
  ]
})

上一篇
Day12-試試Vue3-使用者故事(會員主頁)
下一篇
Day14-試試Vue3-規劃口袋餐廳的頁面
系列文
試試用Vue建立網站吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言