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

学做网站能找到工作么重庆搭建工厂

学做网站能找到工作么,重庆搭建工厂,广西房地产网站建设,广西建设厅网站地址0 目录 1 项目初始化 2 代码风格配置 3 提交代码检查配置 4 项目目录调整 5 安装ElementUI组件库 6 Pinia持久化 7 配置仓库统一管理 8 数据请求工具封装 9 路由设计 10 其他 1 项目初始化 1.1 使用脚手架创建项目 pnpm create vue 1.2 安装依赖 pnpm i 2 代码风…

0 目录

1 项目初始化

2 代码风格配置

3 提交代码检查配置

4 项目目录调整

5 安装ElementUI组件库

6 Pinia持久化

7 配置仓库统一管理

8 数据请求工具封装

9 路由设计

10 其他


1 项目初始化

1.1 使用脚手架创建项目

pnpm create vue

1.2 安装依赖

pnpm i

2 代码风格配置

见 【VUE3】Eslint 与 Prettier 的配置_eslint-plugin-prettier-CSDN博客 中的 8总结

注意:改完操作后记得重启,让最新的规则生效!


3 提交代码检查配置

3.1 初始化git

git init

3.2  安装husky

pnpm dlx husky-init && pnpm install

 3.3 安装lint-staged(只检查修改的文件)

pnpm i lint-staged -D

 3.4 配置packaged.json

{// ..."lint-staged": {"*.{js,ts,vue}": ["eslint --fix"]}
}{"scripts": {// ..."lint-staged": "lint-staged"}
}

3.5  修改 .husky/pre-commit 文件

pnpm lint-staged

4 项目目录调整

删除src文件夹中assets、components、stores、views目录下所有文件

删除router/index.js文件中的默认路由

清除App.vue、main.js中多余代码

在src中新建api、utils文件夹

创建assets/main.scss,可以在里面写全局样式

安装sass依赖

pnpm add sass -D

5 安装ElementUI组件库

5.1 安装命令

pnpm install element-plus

5.2 配置按需导入

5.2.1 安装依赖

pnpm install -D unplugin-vue-components unplugin-auto-import

5.2.2 插入代码

import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({// ...plugins: [// ...AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],
})

注意:在使用ElMessage组件时,不要手动导入,否则会与自动导入冲突,从而导致样式失效

示例:

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
// 配置按需导入
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'// https://vite.dev/config/
export default defineConfig({plugins: [vue(),vueDevTools(),// 配置按需导入AutoImport({imports: ['vue', 'vue-router', 'pinia'],resolvers: [ElementPlusResolver()]}),Components({resolvers: [ElementPlusResolver()]})],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}}
})

 注意:imports: ['vue', 'vue-router', 'pinia'],可以让与其相关的方法无需导入,本篇为未配置时的代码


6 Pinia持久化

6.1 安装依赖

pnpm add pinia-plugin-persistedstate -D

6.2 在main.js中使用

import persist from 'pinia-plugin-persistedstate'
...
app.use(createPinia().use(persist))

6.3 使用实例(先创建/stores/modules/user.js)

import { defineStore } from 'pinia'
export const useUserStore = defineStore('user',() => {const token = ref()return { token }},{ persist: true }
)

7 配置仓库统一管理

7.1 创建文件stores/index.js

将main.js中的pinia配置统一移到此处,并在main.js中导入(此处不演示)

import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'// 导出pinia配置
export default createPinia().use(persist)
// 导出仓库模块(调用其他仓库时统一走该文件)
export * from '@/stores/modules/user.js'

7.2 在main.js中导入

// ...
import pinia from './stores/index.js'
//...
app.use(pinia)

8 数据请求工具封装

8.1 安装axios

pnpm add axios

8.2 新建utils/request.js文件,并创建实例与拦截器

文档:axois创建实例        axios拦截器

示例:

import axios from 'axios'
import { useUserStore } from '@/stores'const apiServer = axios.create({baseURL: import.meta.env.VITE_API_BASE_URL,timeout: 100000 // 超时时间(ms)
})// 添加请求拦截器
apiServer.interceptors.request.use((config) => {// 请求发送前const userStore = useUserStore()// 挂载tokenif (userStore.token) config.headers.Authorization = userStore.tokenreturn config},(error) => {// 请求出错return Promise.reject(error)}
)// 添加响应拦截器
apiServer.interceptors.response.use((response) => {// 响应数据前// 业务处理成功if (response.data.status === 0) return response// 业务处理失败ElMessage({ message: response.data.message || '服务异常', type: 'error' })return Promise.reject(response.data)},(error) => {// 响应出错ElMessage({ message: response.data.message || '服务异常', type: 'error' })return Promise.reject(error)}
)export default apiServer

注意:

1. 可以无需安装dotenv类似的插件,直接创建.env文件配置环境变量

2. 给客户端使用的变量要加VITE_前缀

3. 通过import.meta.env.xxx直接使用,无需导入


9 路由设计

9.1 在App.vue中配置路由出口

<script setup></script><template><div><router-view></router-view></div>
</template><style scoped></style>

9.2 配置基础路由

示例:router/index.js

import { createRouter, createWebHistory } from 'vue-router'
import { useUserStore } from '@/stores'// createRouter 创建路由实例
// 配置 history 模式
// 1. history模式:createWebHistory     地址栏不带 #
// 2. hash模式:   createWebHashHistory 地址栏带 #
// console.log(import.meta.env.DEV)// vite 中的环境变量 import.meta.env.BASE_URL  就是 vite.config.js 中的 base 配置项
const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{ path: '/login', component: () => import('@/views/login/LoginPage.vue') }, // 登录页{path: '/',component: () => import('@/views/layout/LayoutContainer.vue'),redirect: '/article/manage',children: [{path: '/article/manage',component: () => import('@/views/article/ArticleManage.vue')},{path: '/article/channel',component: () => import('@/views/article/ArticleChannel.vue')},{path: '/user/profile',component: () => import('@/views/user/UserProfile.vue')},{path: '/user/avatar',component: () => import('@/views/user/UserAvatar.vue')},{path: '/user/password',component: () => import('@/views/user/UserPassword.vue')}]}]
})export default router

9.3 配置导航守卫

示例:router/index.js

// 登录访问拦截 => 默认是直接放行的
// 根据返回值决定,是放行还是拦截
// 返回值:
// 1. undefined / true  直接放行
// 2. false 拦回from的地址页面
// 3. 具体路径 或 路径对象  拦截到对应的地址
//    '/login'   { name: 'login' }
router.beforeEach((to) => {// 如果没有token, 且访问的是非登录页,拦截到登录,其他情况正常放行const useStore = useUserStore()if (!useStore.token && to.path !== '/login') return '/login'
})

10 其他

10.1 安装图标库

pnpm i @element-plus/icons-vue

10.2 富文本编辑器

官网:VueQuill | Rich Text Editor Component for Vue 3

http://www.dtcms.com/a/514128.html

相关文章:

  • 北京响应式网站制作公司Zillah wordpress
  • 学院网站建设意义wordpress死链跳转
  • 商务网站建设期末作业网站的收录情况怎么查
  • 网站ip域名查询商务网页设计与制作软件
  • 如何给网站优化网站网页设计工作内容
  • 网站的需求购物网站开发计划书
  • 网站建设与管理试题一自己编程怎么做网站教程
  • 网站开发什么语言比较快做网站不会配色怎么办
  • 是将解压缩的wordpress文件夹下面的文件上传到网站根目录.工商银行门户网站是什么意思
  • 宁夏公司网站有用模板网在线制作免费网站
  • 做网站的用什么软件呢凡科网企业账号登录
  • 怎么建设两个大淘客网站什么网站管理系统好
  • 网站专业性免费评价工具办公系统
  • 网站注入木马网站建设招标公示
  • 有个网站301什么群晖wordpress如何连接mysql
  • 做文献ppt模板下载网站有哪些深圳宝安建设工程交易中心
  • 如何进行网站宣传推广杭州网站制作模板
  • 注册网站需要多少钱wordpress极简
  • 网站搭建运营学习网站模板下载
  • 网站设置不可粘贴做网站公司哪家
  • 怎么制作网站模版谷歌应用商店
  • 古交网站建设鹤壁网站建设费用
  • .net做网站后台杭州知名设计公司排名
  • 恩做网站动态页面好python编程网页版
  • 建设网站公司有哪些阿坝网站设计
  • 网站网络投票建设模板dedecms 迁移 wordpress
  • 四川网站建设培训学校上海网站开发技术最好公司
  • 深圳网站设计排名营销推广文案
  • 网站代码素材网站开发所需的技术
  • 房产网站运营方案个人可以做招聘网站吗