前端vue3+typescript架构

这篇具有很好参考价值的文章主要介绍了前端vue3+typescript架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、vue creat 项目名称

选择自定义

前端vue3+typescript架构,前端,vue.js,javascript

 选择需要的依赖

前端vue3+typescript架构,前端,vue.js,javascript

 选择vue3

前端vue3+typescript架构,前端,vue.js,javascript

 一路enter,选择eslist+prettier

前端vue3+typescript架构,前端,vue.js,javascript

 继续enter,等待安装

前端vue3+typescript架构,前端,vue.js,javascript

按步骤操作,项目启动成功

前端vue3+typescript架构,前端,vue.js,javascript

 2、vscode安装5款插件

前端vue3+typescript架构,前端,vue.js,javascript

 2、代码保存自动格式化,保证每个开发人员代码一致,根目录新建三个文件.editorconfig和.prettierrc和.prettierignore

.editorconfig文件如下,无论什么编辑器都按这个格式执行

# http://editorconfig.org

root = true

[*] # 表示所有文件适用
charset = utf-8 # 设置文件字符集为 utf-8
indent_style = space # 缩进风格(tab | space)
indent_size = 2 # 缩进大小
end_of_line = lf # 控制换行类型(lf | cr | crlf)
trim_trailing_whitespace = true # 去除行首的任意空白字符
insert_final_newline = true # 始终在文件末尾插入一个新行

[*.md] # 表示仅 md 文件适用以下规则
max_line_length = off
trim_trailing_whitespace = false

 .prettierrc文件如下,保存代码格式化

{
  "printWidth": 80,//每行多少代码
  "semi": false, // 末尾使用分号
  "singleQuote": true, // 全局使用单引号
  "tabWidth": 2, //tab宽度为两个空格
  "arrowParens": "avoid", //箭头函数参数只有一个时是否要小括号,avoid省略括号
  "trailingComma": "none", // 末尾不加逗号
  "proseWrap": "preserve" // 是否将 Markdown 文件中的文本换行 preserve保留
}

.prettierignore文件如下,忽略某些效验

#忽略效验的文件
/dist/*
.local
.output.js
/node_modules/**

**/*.svg
**/*.sh

/public/*

vscode右键格式化文档

前端vue3+typescript架构,前端,vue.js,javascript

 使用prettier格式化设置前端vue3+typescript架构,前端,vue.js,javascript

package.json中配置一键执行全部文件代码格式化

前端vue3+typescript架构,前端,vue.js,javascript

3、安装husky插件,保证git提交之前代码规范

npx husky-init && npm install

修改husky中pre-commit文件,npm test为npm run lint

前端vue3+typescript架构,前端,vue.js,javascript

4、配置vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  publicPath: './', //打包后的应用中,所有 URL 都会带上的前缀
  //配置代理
  devServer: {
    host: 'localhost',
    port: 8080, // 端口号
    open: true, // 自动启动浏览器
    //所有的配置项
    proxy: {
      //配置
      '/api': {
        //代理名称,这里最好有一个
        target: process.env.VUE_APP_BASE_API, // 后台接口域名
        changeOrigin: true, //是否跨域
        pathRewrite: {
          '^/api': '/api' //路径重写
        }
      }
    }
  }
})

5、引入js必须在tsconfig.json文件配置 "allowJs": true

前端vue3+typescript架构,前端,vue.js,javascript

6、接口请求新建两个文件,配置如下

第一:axios.ts文件配置如下

// 引入axios
import axios from 'axios'

// 请求超时时间
const server = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 1000
  // headers: {
  //   'Content-Type': 'application/json'
  // }
})

// 请求拦截器
server.interceptors.request.use(
  res => {
    // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了
    // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断
    // const token = sessionStorage('Token')
    // token && (request.headers.Authorization = token)
    // if (request.method.toUpperCase() === 'POST') {
    //   request.headers['Content-Type'] = 'application/json;charset=utf-8'
    // }
    return res
  },
  error => {
    return Promise.reject(error)
  }
)
// 响应拦截器
server.interceptors.response.use(
  res => {
    return res.data
  },
  // 服务器状态码不是200的情况
  error => {
    return Promise.reject(error)
  }
)

export default server

第二:api.ts文件配置如下,统一管理接口

import server from '@/axios'

interface LoginData {
  username: string
  password: string
}

export const testGetApi = () => server.get('/api/test')

export const testPostApi = (data: LoginData) => server.post('/api/login', data)

第三:组件中接口调用如下文章来源地址https://www.toymoban.com/news/detail-677207.html

<template>
  <el-table :data="tableData" style="width: 100%" @cell-click="hasChange">
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>
  <div>{{ addressList }}</div>
</template>

<script lang="ts" setup>
import { onMounted, ref } from 'vue'
import { testGetApi } from '@/api'
let tableData = ref([])
let addressList = ref()
const testFun = async () => {
  const res = await testGetApi()
  console.log(res)
  tableData.value = res.data.list
}
const hasChange = (row: any) => {
  console.log(row.address)
  addressList.value = row.address
}
onMounted(() => {
  testFun()
})
</script>

到了这里,关于前端vue3+typescript架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端技术Html,Css,JavaScript,Vue3

    1.基本标签 2.文本格式化 3.链接 4.图片 5.无序列表 6.有序列表 7.表格 8.表单 1.选择器 2.文本和字体 3.链接 4.隐藏 5.定位position 6.浮动 7.对齐 8.图像 1.输出 2.函数 3.常用事件 4.DOM 5.改变Html 6.DOM 元素 (节点) 尾部创建新的 HTML 元素 (节点) - appendChild() 头部创建新的 HTML 元素 (节点)

    2024年02月13日
    浏览(36)
  • 【前端技术】Vue3 01:初识 Vue.js

    Vue 可以说是非常流行了,至少在国内是这样,他是个轻量级的 JavaScript 框架,非常适合构建大型和中小型的 Web 应用程序,如果想和前端打交道,应该绕不过这个框架吧。 目录 1 Vue.js 介绍 2  IDE 选择 2.1 vscode 2.2 WebStorm 2.3 Eclipse 3  创建 Vue 应用 3.1 本地脚手架创建 ① 安装

    2024年02月02日
    浏览(44)
  • 微前端架构-qiankun在vue3的应用

    本文章介绍了qiankun在vue3的应用,其中子应用有vue2、vue3、react、angular qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。 其他几款([single-spa]、[micro-app]、[百度emp]]) 使用 iframe 整合系统时,假设我们有系统 A, 当

    2023年04月08日
    浏览(24)
  • 前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(39)
  • 前端HTML、CSS、JS、VUE3 汇总

    学习https://developer.mozilla.org/zh-CN/docs/Learn/CSS 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 提示:这里可以添加本文要记录的大概内容: 学习路线 知识定位 HTML基础 标签、表格、表单、

    2024年02月13日
    浏览(37)
  • Vue3.2 + TypeScript + Pinia + Vite4 + Element-Plus + 微前端(qiankun) 后台管理系统模板(已开源---显示项目页面截图)

    Wocwin-Admin,是基于 Vue3.2、TypeScript、Vite、Pinia、Element-Plus、Qiankun(微前端) 开源的一套后台管理模板;同时集成了微前端 qiankun也可以当做一个子应用。项目中组件页面使用了Element-plus 二次封装 t-ui-plus 组件,目前已新增fastmock接口。 Link:https://wocwin.github.io/wocwin-admin/ 账号:

    2024年02月08日
    浏览(44)
  • 【前端vue升级】vue2+js+elementUI升级为vue3+ts+elementUI plus

    gogo code 是一个基于 AST (源代码的抽象语法结构树状表现形式)的 JavaScript/Typescript/HTML 代码转换工具,可以用它来构建一个代码转换程序来帮助自动化完成如框架升级、代码重构、多平台转换等工作。 当前 GoGoCode 支持解析和操作如下类型的代码: ○JavaScript(JSX) ○Typescript

    2024年02月12日
    浏览(39)
  • vue3创建项目报错Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_ut

    报错信息: Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_util.parseArgs) is not a function     at init (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_modulescreate-vueoutfile.cjs:4481:72)     at Object.anonymous (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_module

    2024年04月10日
    浏览(111)
  • 持续不断更新中... 自己整理的一些前端知识点以及前端面试题,包括vue2,vue3,js,ts,css,微信小程序等

    答: 在普通的前端项目工程中,在script标签中增加setup即可使用api 使用setup()钩子函数 答: 不要在计算属性中进行异步请求或者更改DOM 不要直接修改computed的值 区别: 计算属性值基于其响应式依赖被缓存,意思就是只要他之前的依赖不发生变化,那么调用他只会返回之前缓

    2024年02月11日
    浏览(35)
  • Vue框架:适用于TypeScript的JavaScript框架

    Vue 是一个高效、灵活、易于学习的 JavaScript 框架,它采用了 MVVM 架构,能够快速构建交互式的用户界面。作为一种现代化的框架,Vue已经成为了许多开发者的首选,其中也包括了很多使用 TypeScript 的开发者。 Vue 框架的最大特点是轻量级、易于上手、灵活和高效,这一点也是

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包