国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板

這篇具有很好參考價(jià)值的文章主要介紹了csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板,web站點(diǎn),vue專欄,inscode,前端,vue3,typescript,vite

?前言

大家好,我是yma16,本文分享利用inscode搭建vue3(ts)+antd前端模板。
2023 新星計(jì)劃 vue(ts)+antd賽道報(bào)名入口:https://bbs.csdn.net/topics/616574177
搭建vue3+ts+antd的指引:認(rèn)識(shí)vite_vue3 初始化項(xiàng)目到打包

?利用inscode免費(fèi)開(kāi)放資源

InsCode 是一個(gè)一站式的軟件開(kāi)發(fā)服務(wù)平臺(tái),從開(kāi)發(fā)-部署-運(yùn)維-運(yùn)營(yíng),都可以在 InsCode 輕松完成。 InsCode
為每位開(kāi)發(fā)者提供了免費(fèi)的 2 核/4 GB 云端開(kāi)發(fā)環(huán)境。

InsCode 的 Cloud IDE
是運(yùn)行于瀏覽器的集成開(kāi)發(fā)環(huán)境(IDE),開(kāi)發(fā)者只需要瀏覽器,有網(wǎng)絡(luò)環(huán)境,就可以隨時(shí)隨地寫(xiě)代碼,不用下載安裝,不受硬件、環(huán)境的影響。

InsCode 的 Cloud IDE 底層基于 VSCode 開(kāi)發(fā),使用體驗(yàn)與桌面版 VS Code
幾乎一致,提供了高效的文件搜索、Git 版本控制、Debug 調(diào)試、數(shù)據(jù)庫(kù)、終端、在線預(yù)覽等功能。

重點(diǎn)
InsCode 可以一鍵部署開(kāi)發(fā)的應(yīng)用,或者直接部署 GitHub 應(yīng)用。部署后提供獨(dú)立的域名訪問(wèn),并永久在線。

?? 在inscode搭建vue3+ts+ant項(xiàng)目

在git倉(cāng)庫(kù)拿到https鏈接(選擇我之前搭建的vue3+ts+antd的git倉(cāng)庫(kù)導(dǎo)入)

csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板,web站點(diǎn),vue專欄,inscode,前端,vue3,typescript,vite
導(dǎo)入inscode作為模板
csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板,web站點(diǎn),vue專欄,inscode,前端,vue3,typescript,vite
導(dǎo)入成功!

csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板,web站點(diǎn),vue專欄,inscode,前端,vue3,typescript,vite
安裝依賴

$ npm i

csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板,web站點(diǎn),vue專欄,inscode,前端,vue3,typescript,vite

?? 調(diào)整配置

vite.config.js

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
// @ts-ignore
import { resolve } from "path";
// @ts-ignore
import Components from "unplugin-vue-components/vite";
// @ts-ignore
import { AntDesignVueResolver } from "unplugin-vue-components/resolvers";

// https://vitejs.dev/config/
export default defineConfig({
  // 打包相對(duì)路徑
  base: './',
  server: {
    host: true,
    proxy: {
      "^/cloudApi/": {
        target: "https://yongma16.xyz/back-front/",
        changeOrigin: true,
        ws: true,
        rewrite: (path) => path.replace(/^\/cloudApi/, ""),
      },
    },
  },
  "css": {
    preprocessorOptions: {
      less: {
        javascriptEnabled: true,
        patterns: [resolve(__dirname, "./src/style/main.less")],
      },
    },
  },
  resolve: {
    alias: {
      "@": resolve(__dirname, "src"),
    },
  },
  plugins: [
    vue(),
    Components({
      resolvers: [AntDesignVueResolver()],
    }),
  ],
});

.inscode配置

run = "npm i && npm run dev"

[deployment]
build = "npm i && npm run build"
run = "npm run preview"

[env]
PATH = "/root/${PROJECT_DIR}/.config/npm/node_global/bin:/root/${PROJECT_DIR}/node_modules/.bin:${PATH}"
XDG_CONFIG_HOME = "/root/.config"
npm_config_prefix = "/root/${PROJECT_DIR}/.config/npm/node_global"

?? antd 國(guó)際化配置

app.ts

<script setup lang="ts">
import { ref } from "vue";
import zhCN from "ant-design-vue/es/locale/zh_CN";
import dayjs from "dayjs";
import "dayjs/locale/zh-cn";
dayjs.locale("zh-cn");
const locale = ref(zhCN);
</script>

<template>
  <!--  國(guó)際化配置-->
  <a-config-provider :locale="locale">
    <div id="app">
      <router-view/>
    </div>
  </a-config-provider>
</template>

<style scoped>
.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}
  #app{
    width: 100vw;
    height: 100vh;
  }
</style>

?? 用戶store

user.ts

// initial state
import { loginUser } from "../../service/user/userApi";
import { message } from "ant-design-vue";

const state = () => ({
  userInfo: {},
});
// getters
const getters = {
  // @ts-ignore
  userInfo: (state, getters, rootState) => {
    const userInfoPermission =
      window.localStorage.getItem("userInfoPermission");
    const userInfo = userInfoPermission ? JSON.parse(userInfoPermission) : {};
    return state.userInfo || userInfo;
  },
};

// actions
// @ts-ignore
const actions = {
  // @ts-ignore
  setUserInfoAction({ commit, state }, userInfo) {
    commit("setUserInfo", userInfo);
  },
  // @ts-ignore
  getUserInfoAction({ state }) {
    const userInfoPermission =
      window.localStorage.getItem("userInfoPermission");
    const userInfo = userInfoPermission ? JSON.parse(userInfoPermission) : {};
    return state.userInfo || userInfo;
  },
  // @ts-ignore
  async loginUser({ commit, state }, params):Promise<void>  {
    return new Promise(async (resolve: any, reject: any) => {
      try {
        console.log('params________',params)
        const res:any = await loginUser(params);
        console.log("res ____________", res);
        const data=res?.data
        console.log('data',data)
        if (data?.code === 200) {
          const userInfo = data.data;
          commit("setUserInfo", userInfo);
          window.localStorage.setItem(
            "userInfoPermission",
            JSON.stringify(userInfo)
          );
          message.success(data?.message);
        } else {
          message.warning(data?.message);
        }
        resolve({ data});
      } catch (r: any) {
        console.log('r',r)
        message.error(JSON.stringify(r));
        reject(r);
      }
    });
  },
};

// mutations
const mutations = {
  // @ts-ignore
  setUserInfo(state, userInfo) {
    console.log("set info", userInfo);
    window.localStorage.setItem("userInfoPermission", JSON.stringify(userInfo));
    state.userInfo = userInfo;
  },
};

export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations,
};

index.ts

import { createStore, createLogger } from "vuex";
import user from "./modules/user";

const debug = process.env.NODE_ENV !== "production";

export default createStore({
  modules: {
    user,
  },
  strict: debug,
  plugins: debug ? [createLogger()] : [],
});

?? 路由權(quán)限

router/index.ts

// import { useStore } from "vuex";
import * as VueRouter from "vue-router";

import store from "../store/index.js";

/**
 * 基礎(chǔ)路由
 * @type { *[] }
 */
const constantRouterMap: any = [
  {
    path: "/",
    name: "dashboard",
    // @ts-ignore
    component: () => import("@/view/layout/Layout.vue"),
    meta: { title: "首頁(yè)" },
  },
  {
    path: "/login",
    name: "login",
    // @ts-ignore
    component: () => import("@/view/user/Login.vue"),
    meta: { title: "登錄" },
  },
  {
    path: "/register",
    name: "register",
    // @ts-ignore
    component: () => import("@/view/user/Register.vue"),
    meta: { title: "注冊(cè)" },
  },
];

// 3. 創(chuàng)建路由實(shí)例并傳遞 `routes` 配置
// 你可以在這里輸入更多的配置,但我們?cè)谶@里
// 暫時(shí)保持簡(jiǎn)單
const router: any = VueRouter.createRouter({
  // 4. 內(nèi)部提供了 history 模式的實(shí)現(xiàn)。為了簡(jiǎn)單起見(jiàn),我們?cè)谶@里使用 hash 模式。
  history: VueRouter.createWebHashHistory(),
  routes: constantRouterMap,
});
// 路由權(quán)限  beforeResolve
router.beforeResolve(async (to: any, from: any, next: any) => {
  // 登錄
  if (to.name === "login" || to.name === "register") {
    console.warn("login|register");
    next();
  }
  // 用戶信息
  const userInfoPermission: any =
    window.localStorage.getItem("userInfoPermission");
  const params = userInfoPermission ? JSON.parse(userInfoPermission) : {};
  if (params) {
    console.log("store", store);
    console.log("params", params);
    try{
      const {data}=await store.dispatch("user/loginUser", params);
      if (data?.code===200) {
        next();
      }
    }
    catch(r){
      console.log('r',r)
      return next({ name: "login" });
    }
  }
  // 返回登錄
  return next({ name: "login" });
});
export default router;

?? 預(yù)覽

運(yùn)行指令

npm i && npm run dev

運(yùn)行成功截圖:
csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板,web站點(diǎn),vue專欄,inscode,前端,vue3,typescript,vite
inscode資源如下:

?結(jié)束

本文分享到這結(jié)束,如有錯(cuò)誤或者不足之處歡迎指出!
csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板,web站點(diǎn),vue專欄,inscode,前端,vue3,typescript,vite

?? 點(diǎn)贊,是我創(chuàng)作的動(dòng)力!
?? 收藏,是我努力的方向!
?? 評(píng)論,是我進(jìn)步的財(cái)富!
?? 感謝你的閱讀!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-576487.html

到了這里,關(guān)于csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 新星計(jì)劃 Electron+vue2 桌面應(yīng)用 2 項(xiàng)目編寫(xiě)

    新星計(jì)劃 Electron+vue2 桌面應(yīng)用 2 項(xiàng)目編寫(xiě)

    練手的項(xiàng)目,需求簡(jiǎn)單,打算做平面設(shè)計(jì)社交類的軟件。 練手用,簡(jiǎn)單處理,寫(xiě)個(gè)簡(jiǎn)單的記事本,本地保存txt,能導(dǎo)出為其他格式的文件。 獲取用戶的網(wǎng)卡地址用于數(shù)據(jù)加密,本地保存加密后的文件,導(dǎo)出為明文數(shù)據(jù)。 可以選擇系統(tǒng)樣式、自定義日志路徑,可見(jiàn)軟件信息(版

    2024年02月06日
    瀏覽(21)
  • 新星計(jì)劃 Electron+vue2 桌面應(yīng)用 2 搭建及運(yùn)行

    新星計(jì)劃 Electron+vue2 桌面應(yīng)用 2 搭建及運(yùn)行

    基礎(chǔ)內(nèi)容:新星計(jì)劃 Electron+vue2 桌面應(yīng)用 1 基礎(chǔ)_lsswear的博客-CSDN博客 根據(jù)使用過(guò)的經(jīng)驗(yàn)和官網(wǎng)的描述,大概可以有四種方式: 自己創(chuàng)建項(xiàng)目(僅使用npm) 用Electron腳手架 HBuilder編譯為web,再用Electron編譯 vue腳手架,安裝Electron,再編譯 這次挨個(gè)試下,看哪個(gè)方便。第三種試

    2024年02月06日
    瀏覽(25)
  • CSDN的InsCode上線了?。?!熱乎的測(cè)評(píng)~

    CSDN AI寫(xiě)作助手上線了!InsCode AI 創(chuàng)作助手不僅能夠幫助用戶高效創(chuàng)作文章,而且能夠作為對(duì)話式AI回答你想知道的問(wèn)題。成倍提高生產(chǎn)力!歡迎大家使用新功能后分享自己的使用心得與建議! 當(dāng)然會(huì)使用了,notion AI,novel AI,ChatGPT等等。當(dāng)然,我們的InsCode上線后,更是迫不及

    2024年02月07日
    瀏覽(21)
  • Vue3 Antd 父子嵌套子表格

    Vue3 Antd 父子嵌套子表格

    父子嵌套子表格 目標(biāo)1:可以點(diǎn)擊多個(gè)父節(jié)點(diǎn)表格,正確顯示子表格數(shù)據(jù) 目標(biāo)2:父表格數(shù)據(jù)刷新重載,解決子表格數(shù)據(jù)不刷新問(wèn)題 官方示例代碼,以及效果 https://www.antdv.com/components/table-cn#components-table-demo-nested-table 可以看到官方示例十分簡(jiǎn)單,使用了 template #expandedRowRender

    2024年02月01日
    瀏覽(23)
  • CSDN_InsCode自帶的Stable Diffusion環(huán)境

    CSDN_InsCode自帶的Stable Diffusion環(huán)境

    就在我們的主頁(yè)左上角可以看到【InsCode】直接點(diǎn)擊進(jìn)入即可。 InsCode - 讓你的靈感立刻落地 可以直接點(diǎn)擊我上面給的路徑,或者在服務(wù)主頁(yè)中點(diǎn)開(kāi)也行。具體位置在下面。 這里由于我們是測(cè)試,買個(gè)便宜的就行。 我為了給大家演示的快一些買了個(gè)最貴的。 等兩分鐘后點(diǎn)擊啟

    2024年02月03日
    瀏覽(18)
  • 用CSDN訓(xùn)練的InsCode AI創(chuàng)作博文:數(shù)據(jù)治理體系建設(shè)

    用CSDN訓(xùn)練的InsCode AI創(chuàng)作博文:數(shù)據(jù)治理體系建設(shè)

    ? ? ? ? 想不想用AI幫我們寫(xiě)方案? ? ? ? ? 想嘗試用CSDN提供的InsCode AI創(chuàng)作助手協(xié)助我們進(jìn)行技術(shù)方案的創(chuàng)作 ,看看效果如何,能不能輔助我們?nèi)粘5姆桨妇帉?xiě)與創(chuàng)作? 以前用ChatGPT也嘗試過(guò),但對(duì)于專業(yè)性更強(qiáng)的內(nèi)容,還有表現(xiàn)的有些力不從心,這次看看InsCode AI訓(xùn)練的怎

    2024年02月03日
    瀏覽(22)
  • 【新星計(jì)劃】Hadoop入門介紹

    【新星計(jì)劃】Hadoop入門介紹

    ? 目錄 一、 大數(shù)據(jù)概述 1.1 大數(shù)據(jù)是什么 1.2 大數(shù)據(jù)的特點(diǎn) 1.3大數(shù)據(jù)的應(yīng)用場(chǎng)景 1.4 大數(shù)據(jù)生態(tài)圈 1.5 開(kāi)發(fā)工具補(bǔ)充: 二、 Hadoop介紹 2.1 Hadoop是什么 ?2.2 Hadoop的背景 2.3 Hadoop就業(yè)前景 ????????大數(shù)據(jù) 是指無(wú)法在一定時(shí)間內(nèi)用常規(guī)軟件工具對(duì)其內(nèi)容進(jìn)行抓取、 管理 和處理

    2024年02月12日
    瀏覽(18)
  • 【新星計(jì)劃·2023】Linux目錄結(jié)構(gòu)

    【新星計(jì)劃·2023】Linux目錄結(jié)構(gòu)

    作者: Insist-- 個(gè)人主頁(yè): insist--個(gè)人主頁(yè) 作者會(huì)持續(xù)更新網(wǎng)絡(luò)知識(shí)和python基礎(chǔ)知識(shí),期待你的關(guān)注 前言 本文將講解Linux目錄結(jié)構(gòu)與功能,以及目錄解釋,最近這段時(shí)間會(huì)持續(xù)更新關(guān)于Linux的基礎(chǔ)知識(shí),期待你的關(guān)注。 目錄 一、Linux目錄結(jié)構(gòu)和功能 1、目錄結(jié)構(gòu) 2、功能 二、

    2024年02月10日
    瀏覽(14)
  • 【新星計(jì)劃Linux】——常用命令(1)

    【新星計(jì)劃Linux】——常用命令(1)

    作者簡(jiǎn)介:一名云計(jì)算網(wǎng)絡(luò)運(yùn)維人員、每天分享網(wǎng)絡(luò)與運(yùn)維的技術(shù)與干貨。? ?座右銘:低頭趕路,敬事如儀 個(gè)人主頁(yè):網(wǎng)絡(luò)豆的主頁(yè)????? 目錄 ? 前言 一.常用命令 1.Linux的基本原則: ?用戶接口: 2.命令形式 3.命令舉例:ls ls -l:長(zhǎng)格式 4.文件系統(tǒng) 查看服務(wù)器基本信

    2024年02月16日
    瀏覽(29)
  • vue3+antd——實(shí)現(xiàn)App.vue頁(yè)面實(shí)時(shí)獲取權(quán)限+用戶信息的功能——基礎(chǔ)積累

    之前寫(xiě)過(guò)一篇文章關(guān)于vue3+antd的框架模板,鏈接如下:http://t.csdn.cn/9dZMS 下面針對(duì) App.vue 頁(yè)面實(shí)時(shí)獲取權(quán)限+用戶信息的功能做一下記錄 重要的代碼如下: 通過(guò) computed 計(jì)算屬性進(jìn)行用戶信息的實(shí)時(shí)監(jiān)聽(tīng),用戶信息更改時(shí)也會(huì)重新觸發(fā)user參數(shù)的變化,最終導(dǎo)致user內(nèi)容保持為最

    2024年02月14日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包