当前位置: 首页 > wzjs >正文

销售流程八个步骤海安网站优化

销售流程八个步骤,海安网站优化,高端定制网站开发建站教程详解,可以拿自己电脑做网站从0开始搭建Vue3项目TypeScript技术方案 一、项目初始化与基础配置 (一)使用Vite创建项目 # 创建Vue3TypeScript项目 npm init vitelatest my-vue3-app -- --template vue-ts# 进入项目目录 cd my-vue3-app# 安装依赖 npm install# 启动开发服务器 np…

从0开始搭建Vue3项目+TypeScript技术方案

一、项目初始化与基础配置

(一)使用Vite创建项目
# 创建Vue3+TypeScript项目
npm init vite@latest my-vue3-app -- --template vue-ts# 进入项目目录
cd my-vue3-app# 安装依赖
npm install# 启动开发服务器
npm run dev
(二)项目结构解析
my-vue3-app/
├── node_modules/              # 依赖包
├── public/                    # 静态资源
├── src/                       # 源代码
│   ├── assets/                # 静态资源
│   ├── components/            # 组件
│   ├── composables/           # 组合式函数
│   ├── router/                # 路由配置
│   ├── stores/                # 状态管理
│   ├── views/                 # 视图
│   ├── App.vue                # 根组件
│   ├── main.ts                # 入口文件
│   ├── env.d.ts               # 环境变量类型定义
├── .eslintrc.cjs              # ESLint配置
├── .gitignore                 # Git忽略配置
├── index.html                 # 入口HTML
├── package.json               # 项目配置
├── tsconfig.json              # TypeScript配置
└── vite.config.ts             # Vite配置

二、TypeScript配置优化

(一)tsconfig.json配置
{"compilerOptions": {"target": "ESNext","module": "ESNext","strict": true,"jsx": "preserve","moduleResolution": "Node","skipLibCheck": true,"esModuleInterop": true,"allowSyntheticDefaultImports": true,"sourceMap": true,"baseUrl": ".","paths": {"@/*": ["src/*"]},"lib": ["ESNext", "DOM"]},"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],"references": [{ "path": "./tsconfig.node.json" }]
}
(二)类型声明文件
// src/env.d.ts
/// <reference types="vite/client" />declare module '*.vue' {import type { DefineComponent } from 'vue'const component: DefineComponent<{}, {}, any>export default component
}// 环境变量类型定义
interface ImportMetaEnv {readonly VITE_APP_TITLE: stringreadonly VITE_API_BASE_URL: string// 更多环境变量...
}interface ImportMeta {readonly env: ImportMetaEnv
}

三、代码质量工具配置

(一)ESLint配置
// .eslintrc.cjs
module.exports = {root: true,env: {browser: true,node: true,es6: true},parser: 'vue-eslint-parser',parserOptions: {parser: '@typescript-eslint/parser',ecmaVersion: 'latest',sourceType: 'module',ecmaFeatures: {jsx: true}},extends: ['plugin:vue/vue3-recommended','eslint:recommended','@vue/eslint-config-typescript','@vue/eslint-config-prettier/skip-formatting'],rules: {'vue/multi-word-component-names': 'off','no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off','no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off','@typescript-eslint/no-explicit-any': 'off','@typescript-eslint/no-empty-function': 'off'}
};
(二)Prettier配置
// .prettierrc.cjs
module.exports = {printWidth: 80,tabWidth: 2,useTabs: false,semi: false,singleQuote: true,quoteProps: 'as-needed',trailingComma: 'es5',bracketSpacing: true,arrowParens: 'avoid',htmlWhitespaceSensitivity: 'strict',vueIndentScriptAndStyle: true,endOfLine: 'auto'
};

四、路由与状态管理配置

(一)Vue Router配置
// src/router/index.ts
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import HomeView from '../views/HomeView.vue'const routes: Array<RouteRecordRaw> = [{path: '/',name: 'Home',component: HomeView},{path: '/about',name: 'About',// 路由懒加载component: () => import('../views/AboutView.vue')}
]const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes
})export default router
(二)Pinia状态管理
// src/stores/counter.ts
import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', {state: () => ({count: 0,title: 'Pinia Counter'}),getters: {doubleCount: (state) => state.count * 2},actions: {increment() {this.count++},incrementBy(value: number) {this.count += value}}
})

五、组件开发实践

(一)基础组件示例
<!-- src/components/HelloWorld.vue -->
<template><div class="hello"><h1>{{ msg }}</h1><button @click="increment">Count: {{ count }}</button></div>
</template><script lang="ts" setup>
import { ref, computed, onMounted } from 'vue'
import { useCounterStore } from '../stores/counter'const props = defineProps<{msg: string
}>()const counterStore = useCounterStore()
const count = computed(() => counterStore.count)const increment = () => {counterStore.increment()
}onMounted(() => {console.log('Component mounted')
})
</script><style scoped>
h1 {color: #2c3e50;
}
</style>
(二)组合式函数示例
// src/composables/useFetch.ts
import { ref, computed, onMounted } from 'vue'export function useFetch<T>(url: string) {const data = ref<T | null>(null)const error = ref<string | null>(null)const loading = ref<boolean>(true)const fetchData = async () => {try {const response = await fetch(url)if (!response.ok) {throw new Error(`HTTP error! status: ${response.status}`)}data.value = await response.json()} catch (err) {if (err instanceof Error) {error.value = err.message} else {error.value = 'An unexpected error occurred'}} finally {loading.value = false}}onMounted(fetchData)return {data,error,loading,refetch: fetchData}
}

六、API请求封装

// src/utils/axios.ts
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'const service = axios.create({baseURL: import.meta.env.VITE_API_BASE_URL,timeout: 5000
})// 请求拦截器
service.interceptors.request.use((config: AxiosRequestConfig) => {// 可以在这里添加认证信息const token = localStorage.getItem('token')if (token) {config.headers.Authorization = `Bearer ${token}`}return config},(error) => {console.error('Request error:', error)return Promise.reject(error)}
)// 响应拦截器
service.interceptors.response.use((response: AxiosResponse) => {return response.data},(error) => {console.error('Response error:', error)return Promise.reject(error)}
)export default service

七、单元测试配置

// package.json 添加测试脚本
{"scripts": {"test": "vitest","coverage": "vitest run --coverage"}
}

// vite.config.ts 添加测试配置
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],test: {environment: 'jsdom',include: ['**/__tests__/**/*.test.[jt]s?(x)'],setupFiles: ['./test/setup.ts']}
})

八、项目部署配置

(一)生产环境构建
npm run build
(二)Nginx配置示例
server {listen 80;server_name your-domain.com;root /path/to/your/project/dist;index index.html;location / {try_files $uri $uri/ /index.html;}location /api {proxy_pass http://backend-api-server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}

九、总结
通过以上步骤,我们完成了一个基于Vue3+TypeScript的项目搭建,包含了:

1.项目初始化:使用Vite创建Vue3+TypeScript项目 
2.TypeScript配置:优化TypeScript配置,添加类型声明
3.代码质量工具:集成ESLint和Prettier进行代码检查和格式化
4.路由与状态管理:配置Vue Router和Pinia状态管理
5.组件开发:使用TypeScript开发Vue组件和组合式函数
6.API请求:封装Axios处理API请求
7.单元测试:配置Vitest进行单元测试
8.项目部署:配置生产环境构建和Nginx部署

http://www.dtcms.com/wzjs/580268.html

相关文章:

  • 点击图片跳转到网站怎么做链接网站毕业设计怎么做
  • 孝感网站开发找优搏广东企业品牌网站建设价格
  • 海南网站建设多少钱品牌企划
  • 微信网站开发 全屏班级网站模板
  • 百度上公司做网站精通网站建设
  • 网站专题活动策划方案做网站项目前期工作包括哪些
  • 做推广网站多少钱网页设计与制作微课教程第4版答案
  • 墨刀做网站网页怎么样在百度做网站
  • wordpress子站点404电脑速成班短期电脑培训班
  • 网站 建设运行情况报告新手学做网站这本书
  • 公司宣传册设计样本设计网站建设和优化要求
  • 深圳seo网站推广方案seo排名赚app下载
  • wordpress悬赏功能实现公司seo排名优化
  • 我要进入手机建设银行网站网站外链建设与维护
  • 做网站建设优化的电话话术华为的网站建设
  • 网站建设中常见的问题企业网站做推广
  • 网站建设一般多钱搭建wordpress站点
  • 很简单的网站搜索引擎优化的分类
  • 面向网站开发的相关知识wordpress mysql分离
  • 自己如何建设微信网站期货交易平台
  • 兰溪市建设局官方网站永州微网站建设
  • 河南省建设招投标网站wordpress前台不显示图片
  • 怎么做自动下单网站plc编程入门基础知识
  • 网站搜索结果页面怎么做网上商城公司网站建设方案
  • 网站 优化 件js代码放wordpress哪里
  • 英语外贸网站建设六安信息网
  • 网站备案信息登记表dw网页设计说明
  • 购物手机网站怎么做东莞的公司
  • 浙江网站建设价格低手机制作网站app
  • 怎样优古网络公司网站后台免费图文模板