vue3+vite+vant4手机端项目实录
目录
一、项目介绍
二、项目的搭建
1.vite的安装
2.启动vite项目
3.vant4的引入与使用
3.1安装指令
npm i vant
3.2引入vant4
4.路由router的引入
4.1安装指令
4.2路由配置
5.路径别名设置
6.json-server
6.1json-server安装
6.2json-server启动项配置
6.3启动命令:npm run mock
7.axios请求数据
7.1安装axios依赖
7.2简单封装axios
7.3项目使用axios
三、登录注册模块
1.登录页面
2.注册页面
3.修改密码
4.开始页面
四、用户端模块
1.职位模块
1.1职位详情页面
2.求职申请页面
2.1求职申请详情页
3.我的页面
3.1我的页面信息修改
3.2我的在线简历页面
3.3我的意见反馈模块
四、总结
一、项目介绍
一款在线招聘App,有四个模块分别为登录注册模块、用户端模块、企业端模块、管理员模块
二、项目的搭建
1.vite的安装
# npm 6.x
npm
init vite@latest my-vue-app
–template
vue
# npm 7+, 需要额外的双横线:
npm
init vite@latest my-vue-app
— –template
vue
2.启动vite项目
指令:npm run dev

3.vant4的引入与使用
vant4是轻量、可定制的移动端 Vue 组件库
3.1安装指令
npm i vant
3.2引入vant4
main.js
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import vant from 'vant';
import { Icon } from 'vant';
import 'vant/lib/index.css';
// 导入router配置文件
import router from "./router"
// 导入阿里图标
import './assets/font/iconfont.css'
// 导入vuex
import store from './store'
createApp(App).use(router).use(vant).use(Icon).use(store).mount('#app')
4.路由router的引入
4.1安装指令
npm
install vue-router@4
4.2路由配置
router/index.js
//1. 导入vue-router相关函数
import { createRouter, createWebHashHistory } from "vue-router"
// 2.路由规则
const routes = [
{
path:"路由地址",
name:"路由名称",
component:组件名称
}
]
// 3.路由对象实例化
const router = createRouter({
history: createWebHashHistory(),
routes
})
// 暴露导出
export default router
main.js
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import vant from 'vant';
import { Icon } from 'vant';
import 'vant/lib/index.css';
// 导入router配置文件
import router from "./router"
// 导入阿里图标
import './assets/font/iconfont.css'
// 导入vuex
import store from './store'
createApp(App).use(router).use(vant).use(Icon).use(store).mount('#app')
5.路径别名设置
vite.config.js 文件
import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vite'
import WindiCSS from 'vite-plugin-windicss'
// 1.导入node的path路径模块
import path from "path"
// https://vitejs.dev/config/
export default defineConfig({
resolve: {
alias: {
// 配置别名
"~": path.resolve(__dirname, "src")
}
}
})
6.json-server
6.1json-server安装
npm install json-server
6.2json-server启动项配置
在src的同级目录先创建文件夹mock,并创建mock/db.json文件,添加数据
{
"infomation": [
{
"id": 1,
"title": "json-server 的第1条数据",
"desc": "奥特曼不想打小怪兽,明明可以做好朋友的",
"author": "被奥特曼打了很久的怪兽"
},
{
"id": 2,
"title": "json-server 的第2条数据",
"desc": "葫芦娃不想去救爷爷,一个一个的去送不好",
"author": "种出七个葫芦的爷爷"
},
{
"id": 1,
"title": "json-server 的第一条数据",
"desc": "王者荣耀其实不是很好玩,这并不是我内心的真话",
"author": "想玩游戏的我"
}
],
"infomation2": [
{
"id": 11,
"title": "json-server 的第11条数据",
"desc": "奥特曼不想打小怪兽,明明可以做好朋友的",
"author": "被奥特曼打了很久的怪兽"
},
{
"id": 12,
"title": "json-server 的第12条数据",
"desc": "葫芦娃不想去救爷爷,一个一个的去送不好",
"author": "种出七个葫芦的爷爷"
},
{
"id": 12,
"title": "json-server 的第13条数据",
"desc": "王者荣耀其实不是很好玩,这并不是我内心的真话",
"author": "想玩游戏的我"
}
]
}
(举例数据)
6.3启动命令:npm run mock
7.axios请求数据
7.1安装axios依赖
npm install axios
7.2简单封装axios
在src文件在下创建utils文件夹,在utils里创建 http.js文件
//引入安装好的axios插件
import axios from "axios";
// 查询数据
const get = (url) => {
return axios.get(url);
};
// 添加数据
const post = (url, data) => {
return axios.post(url, data);
};
// 修改数据
const put = (url, data) => {
return axios.put(url, data);
};
// 局部修改
const patch = (url, data) => {
return axios.patch(url, data);
};
// 删除数据
const del = (url) => {
return axios.delete(url);
};
//将二次封装好的axios导出
export { get, post, put, del, patch };
7.3项目使用axios
项目的端口为8080,然后json文件的端口为3000,这样就会涉及到跨域,解决跨域的方式很多种,此处讲解一下配置proxy代理 在根目录下创建文件vue.config.js,覆盖webpack的一些内容。
vite.config.js
server: {
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
}
}
三、登录注册模块
1.登录页面
代码:
![]()
提交 注册新用户 找回密码 其他登录方式
效果图:

登录模块静态页面主要使用vant4组件库中的组件,主要实现了通过vant表单的数据提交和axios方法获取本地数据来判断手机号与密码是否正确。同时成功就通过路由跳转
2.注册页面
代码:
![]()
发送验证码 同意《 用户服务协议 》注册 已有账号,立即登录
效果图:

注册模块静态页面主要使用vant4组件库中的组件,主要实现了通过vant表单的数据提交和axios方法获取本地数据来判断两次密码是否一致,一致就通过axios增加本地数据。验证码功能未实现
3.修改密码
代码:
发送验证码 下一步
提交
效果图:


修改密码由两个页面组成,通过输入手机号用axios得到本地数据才能进入修改密码页面,同时通过router方法传进一个id值同时用route方法接受id值,修改指定账号的密码
4.开始页面
代码:
我是求职者 我是招聘者 我是管理员
效果图:

该页面主要进行三个端口的跳转,通过router路由的push方法进行路由跳转
四、用户端模块
分为职位、求职申请、我的三个主页面
1.职位模块
代码:
{{ item }}
筛选
{{ item.name }}
{{ item.money }}
{{ item.city }}|{{ item.time }}|{{ item.degree }}
{{ item.company }}
{{ item.people }}
{{ item.name }}
{{ item.money }}
{{ item.city }}|{{ item.time }}|{{ item.degree }}
{{ item.company }}
{{ item.people }}
效果图:

该页面主要通过v-for进行数据遍历,axios.get方法进行数据引用、搜索栏静态效果主要用vant4组件,模糊搜索用了await get(`/api/infomation2?name_like=${val}`)的方法。
1.1职位详情页面
代码:
{{ arr.name }} {{ arr.money }} {{ arr.city }}|{{ arr.time }}|{{ arr.degree }} 职位描述 {{ arr.introduce }}
公司简介 {{ arr.company }}{{ arr.people }}{{ arr.description }}
{{ a }} 投递简历
效果图:

该页面通过职位页面router路由query传值方法接收不同id值,再通过axios方法获取json-server不同id值的数据从而实现数据动态交互。同时页面数据同样通过axios.get方式获取数据渲染页面。按钮感兴趣与投递简历都能实现数据的传递
2.求职申请页面
代码:
{{ item.name }} {{ item.state }}
{{ item.money }}
{{ item.introduce }}
效果图

该页面通过json-server数据对岗位状态进行分别展示,通过v-show进行不同状态的不同岗位展示
同时不同用户显示自己的参与的岗位状态实现数据的动态显示。
2.1求职申请详情页
{{ arr.name }} {{ arr.money }} {{ arr.city }}|{{ arr.time }}|{{ arr.degree }} 职位描述 {{ arr.introduce }}
公司简介 {{ arr.company }}{{ arr.people }}{{ arr.description }}
效果图:

该页面通过职位页面router路由query传值方法接收不同id值,再通过axios方法获取json-server不同id值的数据从而实现数据动态交互。同时页面数据同样通过axios.get方式获取数据渲染页面。
3.我的页面
代码:
请填写个人信息
{{ item.name }}
{{ item.name }}
{{ item.number }}
{{ item.name }}
退出登录
效果图:

该页面名字头像实现动态改变同时已投递、已面试、感兴趣都能通过职位的状态改变发生改变,功能模块通过router.push跳转。
3.1我的页面信息修改
代码:
提交
效果图:

该页面通过vant4组件获取表单值,通过axios.patch修改数据
3.2我的在线简历页面
代码:
基础信息
{{ arr.name }}
![]()
{{ arr.gender }}
|
{{ arr.degree }}
|
{{ arr.iphone }}
求职意向
职能:{{ value.name }}{{ value.money }}
工作地点:{{ value.place }}
工作经验(实习经验)
{{ item.firm }}
{{ item.posts }}
{{ item.time }}
内容:{{ item.content }}
教育经历
{{ item.school }}
{{ item.time }}
{{ item.subject }}
{{ item.degree }}
效果图

该页面通过axios.get获取数据再通过v-for进行循环渲染页面
3.2.1求职意向修改页面
代码:
薪资要求 - k 提交
效果图:

该页面通过vant4组件获取表单值,通过axios.patch修改数据
3.3我的意见反馈模块
代码:
反馈类型:{{ value.type }} {{ value.state }} 内容:{{ value.content }}添加反馈
效果图:

页面通过axioas.get获取数据
四、总结
这次项目有了招聘app的基础功能,但是还有许多细节需要完善。
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/9cec047255.html
