Arco Design Vue 開發(fā)筆記

最近公司的項目需要重新做一套模版袒炉,在TDesige 和 Arco Desige中我們選擇了后者希坚。

安裝環(huán)境和運行項目

安裝arco cli環(huán)境

npm i -g arco-cli

  • 進(jìn)入到一個文件夾新建項目

cd someDir
arco init hello-arco-pro

  • 選擇 技術(shù)棧

? 請選擇你希望使用的技術(shù)棧
React
? Vue

  • 選擇 arco-design-pro 分類

? 請選擇一個分類
業(yè)務(wù)組件
組件庫
Lerna Menorepo 項目
? Arco Pro 項目

等待安裝依賴溃睹。玛痊。。

看到以下輸出就是創(chuàng)建成功了
yy8v7afi.png
  • 進(jìn)入到項目中,運行代碼

cd hello-arco-pro
npm run dev

打開 localhost:3000 就能看到如下頁面

8t088ais.png

關(guān)閉moke環(huán)境走接口
  • src->main.ts文件中將下面代碼注釋

import './mock';

  • 或者在對應(yīng)mock中設(shè)置如下參數(shù)

setupMock({
mock:false,
})


1695715517972.png
  • 在 ./config/vite.config.dev.ts 文件下添加以下代碼進(jìn)行代理和運行其他人訪問本地服務(wù)
server: {
    open: true,
    fs: {
      strict: true,
    },
    proxy: { // 跨域代理
      '/api': {
        target: '要跨域的地址负蚊。例:https://192.168.1.74:3000',
        changeOrigin: true, // 允許跨域
      },
    },
    host: '0.0.0.0', // 允許其他電腦訪問
  },
  • 清空.env.development 中 VITE_API_BASE_URL的值
VITE_API_BASE_URL= ''
  • 在./src/api/user.ts修改登錄接口(這里我的接口跟示例接口一樣)
export function login(data: LoginData) {
  return axios.post<LoginRes>('/api/user/login', data);
}
  • 在./src/api/interceptor.ts文件下重寫攔截器
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
// 用戶可以根據(jù)自身后臺系統(tǒng)進(jìn)行修改
export interface HttpResponse<T = unknown> {
 status: number;
 msg: string;
 code: number;
 data: T;
}

axios.interceptors.request.use(
 (config: AxiosRequestConfig) => {
   // 此處對請求進(jìn)行配置
   return config;
 },
 (error) => {
   // 對請求錯誤做些什么
   return Promise.reject(error);
 }
);
// 添加響應(yīng)攔截器
axios.interceptors.response.use(
 (response: AxiosResponse<HttpResponse>) => {
   const res = response.data;
   // if the custom code is not 20000, it is judged as an error.
   if (res.code !== 200) {
     // remind users

     // 508: Illegal token; 512: Other clients logged in; 514: Token expired;
     if (
       [508, 512, 514].includes(res.code)
     ) {
       // do something
     }
     return Promise.reject(new Error(res.msg || 'Error'));
   }
   return res;
 },
 (error) => {
   return Promise.reject(error);
 }
);

測試登錄接口,遇到問題如下
1695799364848.png

這里登錄的接口已經(jīng)通了颓哮,在提示歡迎使用的時候已經(jīng)存了token
但是立馬就會報錯家妆,走一個info和logout的接口,大概率是路由守衛(wèi)搞得鬼

  • 打開./src/router/guard/userLoginInfo.ts


    1695799872134.jpg
  • 打開./src/store/modules/user/index.ts冕茅,在state中找到role伤极,更改它的值
    (由于在同級目錄下的types.ts中強設(shè)了role的值type RoleType = '' | '*' | 'admin' | 'user';role: RoleType; 所以我們要在里面選一個,不然會報紅姨伤,這里我用的admin)

role: 'admin',

登錄成功哨坪,進(jìn)來之后發(fā)現(xiàn)報了兩個Error錯誤,并且有兩個模塊是沒有數(shù)據(jù)的乍楚。


1695803303557.png

應(yīng)該是我們改了攔截器的原因

  • 打開./src/utils/setup-moke.ts,找到successResponseWrap方法当编,修改里面的code

code: 200

新增一個菜單
  • 在 ./src/views中新建msgManager文件夾,在其中新建application文件夾徒溪,并建index.vue文件
<template lang="">
    <div>
        
    </div>
</template>
<script>
export default {
    
}
</script>
<style lang="">
    
</style>
  • 在./src/router/routes/modules下新建msgManager.ts文件
import { DEFAULT_LAYOUT } from '../base';
import { AppRouteRecordRaw } from '../types';

const APPLICATION: AppRouteRecordRaw = {
  path: '/msgManager',
  name: 'msgManager',
  component: DEFAULT_LAYOUT,
  meta: {
    locale: 'menu.msgManager',
    requiresAuth: true,
    icon: 'icon-list',
    order: 2,
  },
  children: [
    {
      path: 'application', // The midline path complies with SEO specifications
      name: 'application',
      component: () => import('@/views/msgManager/application/index.vue'),
      meta: {
        locale: 'menu.application.msgManager',
        requiresAuth: true,
        roles: ['*'],
      },
    },
  ],
};

export default APPLICATION;
  • 在./src/locale/zh-CN.ts的語言包中增加菜單名忿偷,其他語言包不贅述。

export default {
'menu.dashboard': '儀表盤',
'menu.dashboard.workplace': '工作臺',
'menu.msgManager': '消息管理',
'menu.application.msgManager': '應(yīng)用消息管理',
}

持續(xù)更新中...
如果這篇文章對你有幫助臊泌,或者在進(jìn)行中遇到其他問題鲤桥,歡迎評論區(qū)留言出來。
我們一起探討~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渠概,一起剝皮案震驚了整個濱河市茶凳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖贮喧,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顷牌,死亡現(xiàn)場離奇詭異,居然都是意外死亡塞淹,警方通過查閱死者的電腦和手機窟蓝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饱普,“玉大人运挫,你說我怎么就攤上這事√赘” “怎么了谁帕?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長冯袍。 經(jīng)常有香客問我匈挖,道長,這世上最難降的妖魔是什么康愤? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任儡循,我火速辦了婚禮,結(jié)果婚禮上征冷,老公的妹妹穿的比我還像新娘择膝。我一直安慰自己,他們只是感情好检激,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布肴捉。 她就那樣靜靜地躺著,像睡著了一般叔收。 火紅的嫁衣襯著肌膚如雪齿穗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天饺律,我揣著相機與錄音窃页,去河邊找鬼。 笑死蓝晒,一個胖子當(dāng)著我的面吹牛腮出,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芝薇,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼胚嘲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洛二?” 一聲冷哼從身側(cè)響起馋劈,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤攻锰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妓雾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娶吞,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年械姻,在試婚紗的時候發(fā)現(xiàn)自己被綠了妒蛇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡楷拳,死狀恐怖绣夺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情欢揖,我是刑警寧澤陶耍,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站她混,受9級特大地震影響烈钞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坤按,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一毯欣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晋涣,春花似錦仪媒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽留凭。三九已至佃扼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔼夜,已是汗流浹背兼耀。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留求冷,地道東北人瘤运。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像匠题,于是被迫代替她去往敵國和親拯坟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容