个人博客(11、创建前端项目)

简介: 个人博客(11、创建前端项目)

一、前言

上一章对我的个人博客项目前端所用到的技术栈大概说了一下,也说了一下自己对所用技术的当前水准,总结一下就是没得水准,可能还没有入门,本章将对前端项目进行创建。

二、创建vite+vue项目

gitee创建前端项目

老规矩,gitee而不是GitHub,一个是因为需要科学上网工具,在一个是也没用过GitHub,全英文难受得很

直接贴图了,不会的老铁建议翻一下专栏个人博客前面的章节

git clone https://gitee.com/andaning/blog-vue.git
复制代码

网络异常,图片无法展示
|

node.js选择

node版本检查命令

node -v
复制代码

初始化项目

使用npm, 如果是使用的nodejs 14.19.0版本的使用以下命令

npm init @vitejs/app
输入项目名
选择vue
因为我们是TypeScript项目,最后一个选择vue-ts而不是vue
复制代码

网络异常,图片无法展示
|

如果nodejs版本是最新稳定版16.16.0的, 创建项目命令变为

npm init vite
输入项目名
选择vue
因为我们是TypeScript项目,最后一个选择vue-ts而不是vue
复制代码

网络异常,图片无法展示
|

进入我们生成的项目 blog-vue目录之后,进入cmd界面输入以下命令拉取依赖

npm install
复制代码

网络异常,图片无法展示
|

网络异常,图片无法展示
|

依赖下载完毕之后输入以下命令来启动我们的项目

npm run dex
复制代码

项目启动之后会进入以下界面,输入 http://127.0.0.1:5173/ 进入项目的首页

网络异常,图片无法展示
|

三、修改Vite配置文件

进入项目根目录 vite.config.ts 文件,设置 @指向 src目录,服务启动端口,打包路径、代理等,详情可查看Vite官网

网络异常,图片无法展示
|

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 如果编辑器提示 path 模块找不到,则可以安装一下 @types/node -> npm i @types/node -D
import { resolve } from 'path'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src') // 设置 `@` 指向 `src` 目录
    }
  },
  base: './', // 设置打包路径
  server: {
    port: 7685, // 设置服务启动端口号
    open: true, // 设置服务启动时是否自动打开浏览器
    cors: true // 允许跨域
    // 设置代理,根据我们项目实际情况配置
    // proxy: {
    //   '/api': {
    //     target: 'http://xxx.xxx.xxx.xxx:8000',
    //     changeOrigin: true,
    //     secure: false,
    //     rewrite: (path) => path.replace('/api/', '/')
    //   }
    // }
  }
})
复制代码

四、目录结构

├── publish/
└── src/
    ├── assets/                    // 静态资源目录
    ├── common/                    // 通用类库目录
    ├── components/                // 公共组件目录
    ├── router/                    // 路由配置目录
    ├── store/                     // 状态管理目录
    ├── style/                     // 通用 CSS 目录
    ├── utils/                     // 工具函数目录
    ├── views/                     // 页面组件目录
    ├── App.vue
    ├── main.ts
    ├── shims-vue.d.ts
├── index.html
├── tsconfig.json                  // TypeScript 配置文件
├── vite.config.ts                 // Vite 配置文件
└── package.json
复制代码

五、集成相关工具

集成vue-router

输入以下命令集成vue-router,vue-router官网

npm install vue-router@4
复制代码

在src下建立router文件夹,并在该文件夹下创建 index.ts文件

import {
    createRouter,
    createWebHashHistory,
    RouteRecordRaw
  } from 'vue-router'
  import Home from '@/page/backStage/home/home.vue'
  const routes: Array<RouteRecordRaw> = [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/axios',
      name: 'Axios',
      component: () => import('@/views/axios.vue') // 懒加载组件
    }
  ]
  const router = createRouter({
    history: createWebHashHistory(),
    routes
  })
  export default router
复制代码

引入配置文件

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router/index'
createApp(App)
    .use(router)
    .mount('#app')
复制代码

安装Vuex

输入以下命令安装vuex

npm i vuex@next
复制代码

创建 src/store/index.ts 文件

import { createStore } from 'vuex'
const defaultState = {
  count: 0
}
// Create a new store instance.
export default createStore({
  state() {
    return defaultState
  },
  mutations: {
    increment(state: typeof defaultState) {
      state.count++
    }
  },
  actions: {
    increment(context) {
      context.commit('increment')
    }
  },
  getters: {
    double(state: typeof defaultState) {
      return 2 * state.count
    }
  }
})
复制代码

引入配置文件

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import store from './store/index'
createApp(App)
    .use(store)
    .mount('#app')
复制代码

安装http工具axios

输入以下命令安装axios

npm i axios
复制代码

配置axios

import Axios from 'axios'
import { ElMessage } from 'element-plus'
const baseURL = 'https://api.github.com'
const axios = Axios.create({
  baseURL,
  timeout: 20000 // 请求超时 20s
})
// 前置拦截器(发起请求之前的拦截)
axios.interceptors.request.use(
  (response) => {
    /**
     * 根据你的项目实际情况来对 config 做处理
     * 这里对 config 不做任何处理,直接返回
     */
    return response
  },
  (error) => {
    return Promise.reject(error)
  }
)
// 后置拦截器(获取到响应时的拦截)
axios.interceptors.response.use(
  (response) => {
    /**
     * 根据你的项目实际情况来对 response 和 error 做处理
     * 这里对 response 和 error 不做任何处理,直接返回
     */
    return response
  },
  (error) => {
    if (error.response && error.response.data) {
      const code = error.response.status
      const msg = error.response.data.message
      ElMessage.error(`Code: ${code}, Message: ${msg}`)
      console.error(`[Axios Error]`, error.response)
    } else {
      ElMessage.error(`${error}`)
    }
    return Promise.reject(error)
  }
)
export default axios
复制代码

引入element plus

输入以下命令引入element plus

npm i element-plus
复制代码

配置element plus

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'
createApp(App)
    .use(ElementPlus)
    .mount('#app')
复制代码

总结

到此个人博客项目的前端页面初始化就完成了,运行正常

网络异常,图片无法展示
|



目录
相关文章
|
2月前
|
前端开发 JavaScript
前端项目公共组件封装思想
该文介绍了如何封装通用组件,如表单搜索、表格展示和分页器。首先,通过抽离出公共部分,创建`TableContainer`组件,利用具名插槽插入`navbar`和`table`,并通过props传递标题。然后在父组件中使用具名插槽和子组件实现具体功能。文中还展示了更复杂的组件封装示例,通过props实现数据双向绑定,以`el-pagination`为例,利用`sync`修饰符和`computed`属性监听并更新父组件状态,实现分页功能。文章最后提到了内容来源于哪。
|
2月前
|
前端开发
Github项目分享——免费的画图工具drow,最新前端面试题整理
Github项目分享——免费的画图工具drow,最新前端面试题整理
|
2月前
|
资源调度 前端开发
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
125 0
|
4天前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用问题之流水线构建前端项目比较慢。该如何优化
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
10天前
|
前端开发 Shell 容器
前端练习小项目——视觉冲击卡片
前端练习小项目——视觉冲击卡片
|
20天前
|
缓存 前端开发 JavaScript
Webpack作为模块打包器,为前端项目提供了高度灵活和可配置的构建流程
【6月更文挑战第12天】本文探讨了优化TypeScript与Webpack构建性能的策略。理解Webpack的解析、构建和生成阶段是关键。优化包括:调整tsconfig.json(如关闭不必要的类型检查)和webpack.config.js选项,启用Webpack缓存,实现增量构建,代码拆分和懒加载。这些方法能提升构建速度,提高开发效率。
34 3
|
20天前
|
Web App开发 运维 前端开发
从0开始搭建一个前端项目的架子
从0开始搭建一个前端项目的架子
18 1
|
27天前
|
存储 前端开发 Windows
对于莫名其妙使用smarttomcat上传前端项目失败,上传css等静态资源失败等原因,及解决方法
对于莫名其妙使用smarttomcat上传前端项目失败,上传css等静态资源失败等原因,及解决方法
|
2月前
|
前端开发 JavaScript
前端综合练手小项目
前端综合练手小项目
|
19天前
|
JavaScript 前端开发 Java
【Vue实战项目】学完前端基础后,可能你还需要掌握这些才能接手开发项目
【Vue实战项目】学完前端基础后,可能你还需要掌握这些才能接手开发项目
31 0