前端项目基础框架搭建
安装相关依赖配置,初始化项目框架
环境准备
前期需要准备好 Node 相关环境。因为本项目采用的是 Vue3/Vite 版本,所以推荐使用 Node 18 以上,这里使用了 Node 20.15.1。
检查 Node 环境是否是 18 以上,如果不是,则需要到官方网站下载:https://nodejs.cn/download/
node -v

默认情况下,镜像地址为官方地址,下载依赖很慢,所以我们需要配置好淘宝镜像,方便后续可以加快依赖的安装与下载。
npm config set registry https://registry.npmmirror.com/
查看镜像使用情况
npm config get registry

创建并配置项目
创建项目
安装Vite
我们使用Vite来创建项目,Vite是一个快速的前端构建工具,支持现代JavaScript框架如Vue、React、Svelte等。
在创建Vite项目之前,需要先安装Vite。你可以使用以下命令来全局安装Vite:
npm install -g create-vite
或者使用yarn或pnpm
yarn global add create-vite
# 或
pnpm add -g create-vite
创建项目
我们这边使用JavaScript,TypeScript的难度较大,所以不好使用模版来创建项目。
npm create vite@latest zhihu-web
然后选择Vue框架和JavaScript语言

项目启动和开发
按照上面的指示,分别依次输入:
cd zhihu-web
npm install
npm run dev

就会跳到如下界面:

点击链接,跳转到初始页面,可以看到项目已经可以成功启动啦!

配置项目
基础配置
配置端口号
打开vite.config.js文件
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
// https://vite.dev/config/
export default defineConfig({
server: {
open: true, // 自动打开浏览器
port: 8088,
},
plugins: [vue()],
});
配置根目录
方便我们后面写文件路径的时候不用谢很多的"…/…/“,而只用”@"就可以代替根目录。
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
// https://vite.dev/config/
export default defineConfig({
server: {
open: true, // 自动打开浏览器
port: 8088,
},
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
},
},
plugins: [vue()],
});
项目logo修改
在iconfont中选择自己喜欢的图标,复制svg代码,替换掉<font style="color:#ED740C;">public/vite.svg</font>的文件内容,再保存一下index.html


index.html内容也可以改一下啊
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>知乎</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
最后运行的效果

安装Vue-Router并配置
使用VS Code打开创建好的项目,输入如下命令安装路由
npm install vue-router
查看package.json可以看到路由的版本,下面的配置也是同样的

- 配置Vue Router : src下创建 router/index.js 文件。
- 我们这边暂且设置根路径为App.vue,使用动态导入(import())语法,书写更加简洁。
import { createRouter, createWebHistory } from "vue-router";
const routes = [
{
path: "/",
name: "Home",
component: () => import("../App.vue"),
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
export default router;
- 在 main.js 中引入router
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
const app = createApp(App);
app.use(router);
app.mount('#app');
src下新建views目录,用来存放页面组件。
安装Tailwind CSS并配置
Tailwind CSS - 只需书写 HTML 代码,无需书写 CSS,即可快速构建美观的网站。
TailwindCSS 是一种现代的前端样式框架,它以“原子化”设计理念为核心,通过提供一系列可重复使用的CSS 类,帮助开发人员更快速地构建美观且响应式的用户界面。
安装 Tailwind CSS 并进行初始化
通过 npm 安装 <font style="color:rgb(77, 77, 77);">tailwindcss</font>,然后通过初始化命令创建你自己的 <font style="color:rgb(77, 77, 77);">tailwind.config.js</font> 配置文件
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
配置模板文件的路径
在 tailwind.config.js 配置文件中添加所有模板文件的路径。
/** @type {import('tailwindcss').Config} */
export default {
//配置tailwind的应用范围
//在这里我们配置了tailwind应用到index.html文件和src目录下所有.vue和.js文件
content: ["./index.html", "./src/**/*.{vue,js}"],
theme: {
extend: {},
},
plugins: [],
};
创建 src/css/tailwind.css 文件
通过@tailwind指令添加每一个Tailwind功能模块。
@tailwind base;
@tailwind components;
@tailwind utilities;
在main.js 文件中引入 tailwind.css
import "@/css/tailwind.css";
插件推荐:Tailwind CSS IntelliSense

Tailwind CSS IntelliSense 是 Tailwind CSS 官方推荐的 VSCode 插件,它为开发者提供了以下强大的功能:
- 类名自动补全:在输入 Tailwind 类名时自动提示所有可能的类。
- 实时预览:鼠标悬停在类名上时会显示该类的 CSS 样式。
- 错误提示:如果输入了不存在的 Tailwind 类名,插件会立即提示错误,减少手动检查的麻烦。
原文链接:https://blog.csdn.net/lph159/article/details/143844380
使用
简单修改一下App.vue 中的图片样式

运行项目,可以看到如下的效果

安装Element-Plus并配置
- 安装
npm install element-plus --save
- main.js 中完整导入
...
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
const app = createApp(App);
app.use(router);
app.use(ElementPlus);
app.mount("#app");
安装Pinia并配置
- 安装
在项目目录下,运行以下命令安装Pinia
npm install pinia
- 引入Pinia
main.js中,引l入Pinia并使用
...
// 引⼊ Pinia
import { createPinia } from "pinia";
// 实例化 Pinia
const pinia = createPinia();
const app = createApp(App);
app.use(router);
app.use(ElementPlus);
app.use(pinia);
app.mount("#app");
安装Axios并配置
- 安装
npm install axios
- 全局配置 Axios 的基础选项
src新建api目录,新建axioslnstance.ts文件,来全局引入axios并配置属性,baseURL,超时时间等,然后导出axios实例:
// src/api/axiosInstance.ts
import axios from "axios";
// 创建 Axios 实例
const api = axios.create({
baseURL: "https://api.zhihu.com", // 基础 URL
timeout: 5000, // 请求超时时间5秒
});
export default api; // 导出封装后的 Axios 实例
项目框架初始化
views中暂且划分模块如下,删除 HelloWorld.vue ,删除 style.css ,删除 main.js 中引入的 style.css

定义页面对应的路由router/index.js
import { createRouter, createWebHistory } from "vue-router";
const routes = [
{
path: "/",
redirect: "/login", //重定向到登录页
},
{
path: "/login", //登录页
name: "login",
component: () => import("../views/login/index.vue"),
},
{
path: "/index", //首页
name: "index",
component: () => import("../views/index/index.vue"),
children: [
{
path: "/index/interest", //关注页
name: "interest",
component: () => import("../views/index/interest/index.vue"),
},
{
path: "/index/recommend", //推荐页
name: "recommend",
component: () => import("../views/index/recommend/index.vue"),
},
{
path: "/index/hotlist", //热门页
name: "hotlist",
component: () => import("../views/index/hotlist/index.vue"),
},
{
path: "/index/vedio", //视频页
name: "vedio",
component: () => import("../views/index/video/index.vue"),
},
],
},
{
path: "/education", //知乎知学堂页
name: "education",
component: () => import("../views/education/index.vue"),
},
{
path: "/waiting", //等你来答页
name: "waiting",
component: () => import("../views/waiting/index.vue"),
},
{
path: "/firsthand", //知乎直答页
name: "firsthand",
component: () => import("../views/firsthand/index.vue"),
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
export default router;
更改App.vue中的内容
<template>
<nav><router-link to="/"></router-link></nav>
<router-view></router-view>
</template>
运行项目自动重定向到登录页

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)