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

做任务赚钱的安全网站网站策划书的撰写流程

做任务赚钱的安全网站,网站策划书的撰写流程,西昌市做网站的公司,搭建微网站平台一、vue 项目搭建 1、创建 vue 项目 vue create vue-element说明:创建过程中可以选择路由,也可也可以不选择,可以通过 npm install 安装 vue 项目目录结构 说明:api 为自己创建的文件夹,router 选择路由模块会自动…

一、vue 项目搭建

1、创建 vue 项目
vue create vue-element

说明:创建过程中可以选择路由,也可也可以不选择,可以通过 npm install 安装

vue 项目目录结构
在这里插入图片描述
说明:api 为自己创建的文件夹,router 选择路由模块会自动创建

router下的index.js文件(配置路由的文件)

import { createRouter, createWebHashHistory } from 'vue-router'const routes = [{path: '/', //路由路径name: 'login',component: () => import(/* webpackChunkName: "about" */ '@/views/login.vue')//访问的页面},
]
// 创建路由
const router = createRouter({history: createWebHashHistory(),routes
})
// 导出路由
export default router

views下的 login.vue

<template><div class="content"><div class="login"><span class="font">智慧车库管理</span><div>账 号:<el-inputv-model="user.account"style="width: 240px"placeholder="请输入账号"/></div><div style="margin-top: 20px">密 码:<el-inputv-model="user.password"style="width: 240px"placeholder="请输入密码"type="password"show-password/></div><div class="register"><div><span>注册账号</span></div><div><span>验证码登录</span></div></div><div @click="login"><el-button type="success" round size="large" class="loginbut">登录</el-button></div></div></div>
</template><script setup>
import { reactive , getCurrentInstance} from "vue";const user = reactive({ account: "", password: "" });const {proxy} = getCurrentInstance()const login = async() => {console.log(proxy.$urls.m().login);const obj = {account:user.account,password:user.password}const res = await new proxy.$request(proxy.$urls.m().login,obj).modepost()};
</script><style scoped>
.content {height: 100vh;display: flex;justify-content: center;align-items: center;background-color: aliceblue;
}
.login {display: flex;background-color: #ffffff;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);border-radius: 5px;transition: transform 0.3s ease;width: 600px;height: 400px;flex-direction: column;align-items: center;
}
.login:hover {transform: translateY(-10px); /* 鼠标滑过时向上浮动10px */
}
.font {font-size: 24px;font-family: Arial, Helvetica, sans-serif;margin-bottom: 50px;margin-top: 30px;
}
.register {width: 50%;display: flex;justify-content: space-between;margin-top: 30px;
}
.loginbut {width: 200px;margin-top: 40px;
}
</style>

main.js 中全局引入路由

import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 引入路由
import ElementPlus from 'element-plus' // 引入element,引入之前需要安装 参考element官方网站 (npm 等方式安装即可)
import 'element-plus/dist/index.css'  // 引入element
import zhCn from 'element-plus/es/locale/lang/zh-cn' // element 国际化const app = createApp(App);
app.use(router); // 使用路由
app.use(ElementPlus, {locale: zhCn,}); // 国际化// 请求地址
import urls from './api/api.js'
app.config.globalProperties.$urls = urls
// 请求方法
import request from './api/request'
app.config.globalProperties.$request = requestapp.mount('#app'); //挂载,app 在public下的index.html

App.vue 文件内容

<template><router-view/>  // 路由页面显示位置
</template><script></script><style></style>

1、请求封装

1.1、axios 安装
cnpm install axios --save
1.2 api 封装(面向对象封装)

在 api 文件夹中创建 api.js。文件内容如下

const url = "http://localhost:8080";  // 基础urlconst urls = class {static m() {const login = `${url}/login`; // 模板语法return {login  // 导出 login 地址}}
}
export default urls  // 暴露 urls

在 api 下创建 header.js 。内容如下

import axios from "axios";  //导入 axios
import {ElMessageBox } from 'element-plus'  // 局部引入 element 弹框(虽然在main.js中已经全局引入,但是这里是js文件,并不是 vue 文件,所有要导入)//创建 axios 全局配置let instance = axios.create({responseType: "json", // 期望后端返回的数据类型 jsonheaders: { "Content-Type": "application/json" },// 请求头中添加上传给服务器的数据类型 json
});// http 拦截,请求发出之前
instance.interceptors.request.use((config) => {let token = localStorage.getItem("token");//缓存中获取token if (token) {config.headers.Authorization = token; // 请求头中携带 token}return config;},(err) => {return Promise.reject(err);}
);// http 拦截 ,请求发出之后
instance.interceptors.response.use((response) => {return response;},(error) => {if(error.response){let ERRS = error.response.statuslet MSG = error.response.data.datalet errdata = ERRS == 401 ? MSG : '服务器打盹啦'switch(ERRS) { // 401 时特别处理 ,没有权限case '401':  ElMessageBox.alert('没有权限', '提示', {confirmButtonText: '好的',type: 'error',}).then(res => {}).catch(err => {})break;}}return Promise.reject(error.response.data)}
)
export default instance

在 api 下创建 request.js 文件,文件内容如下

import instance from "./header";  // 引入 header.js 文件,instance 就是我们在 header.js 中暴露出的 axios 实例const request = class {  // 创建一个请求类constructor(url, arg) {  // 构造器赋值this.url = url;  // urlthis.arg = arg;  // 参数}modepost() {  // 创建 post 请求return new Promise((resolve, reject) => {instance.post(this.url, this.arg)// 成功回调.then( res => {resolve(res);})// 失败回调.catch( err => {reject(err)})});}
// 创建 get 请求modeget() {return new Promise((reject,resolve) => {instance.get((this.url))// 成功回调.then(res => {resolve(res)})// 失败回调.catch(err => {reject(err)})})}
}export default request  // 暴露

这三个文件创建完成之后,我们可以回过头去看 main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 引入路由
import ElementPlus from 'element-plus' // 引入element,引入之前需要安装 参考element官方网站 (npm 等方式安装即可)
import 'element-plus/dist/index.css'  // 引入element
import zhCn from 'element-plus/es/locale/lang/zh-cn' // element 国际化const app = createApp(App);
app.use(router); // 使用路由
app.use(ElementPlus, {locale: zhCn,}); // 国际化// 请求地址
import urls from './api/api.js'
app.config.globalProperties.$urls = urls
// 请求方法
import request from './api/request'
app.config.globalProperties.$request = requestapp.mount('#app'); //挂载,app 在public下的index.html

主要看这里

// 请求地址
import urls from './api/api.js'
app.config.globalProperties.$urls = urls  //全局配置请求地址
// 请求方法
import request from './api/request'
app.config.globalProperties.$request = request // 全局配置请求方法

然后再去看 login.vue 中的使用,这里我只拿过来 js 部分

<script setup>
import { reactive , getCurrentInstance} from "vue";const user = reactive({ account: "", password: "" });const {proxy} = getCurrentInstance() //对象展开获取 proxyconst login = async() => {const obj = {account:user.account,password:user.password} // 封装请求参数const res = await new proxy.$request(proxy.$urls.m().login,obj).modepost() // 创建 request 实例并调用 modepost() 方法发送请求
};
</script>

到这里,vue 项目的基本搭建已经完成

二、spring boot 项目搭建

使用 idea 创建 springboot项目,导入web 依赖即可
项目结构

在这里插入图片描述
这里比较简单,不过都赘述,
看一下测试接口(LoginController)

@Slf4j  // 日志注解
@RestController  // 表示是一个controller,并且会返回json 数据,相当于 @Controller 和   @ResponseBody 组合
@RequestMapping("/login")  // 请求地址 /login ,支持所有方式的请求
@CrossOrigin(origins = "http://localhost:8082")  // 跨域解决,允许本机8082程序访问(后续会统一处理)
public class LoginController {@PostMapping  // 接受 /login 下的 post 请求public String Login(@RequestBody LoginDTO loginDTO){  // @RequestBody 接受请求体中的 json 数据并解析为 LoginDTO 对象log.info(loginDTO.toString());  // 日志打印解析后的对象 return "";}
}

LoginDTO 在controller 下的 dto 下,内容如下

@Data
@AllArgsConstructor
@NoArgsConstructor  // 这三个都是 Lombok 注解,简化开发 ,自动生成getter,setter 构造器等
public class LoginDTO {private String account;private String password;
}

文章转载自:
http://marrism.spkw.cn
http://pcmcia.spkw.cn
http://tritium.spkw.cn
http://adsl.spkw.cn
http://monstrance.spkw.cn
http://desk.spkw.cn
http://consortium.spkw.cn
http://sideswipe.spkw.cn
http://viscerotonia.spkw.cn
http://yarovise.spkw.cn
http://tacharanite.spkw.cn
http://edemata.spkw.cn
http://fogdrop.spkw.cn
http://deciare.spkw.cn
http://descrier.spkw.cn
http://caftan.spkw.cn
http://arc.spkw.cn
http://pervert.spkw.cn
http://ricket.spkw.cn
http://zooplastic.spkw.cn
http://acred.spkw.cn
http://pdsa.spkw.cn
http://ccsa.spkw.cn
http://germiparity.spkw.cn
http://closestool.spkw.cn
http://electrocapillarity.spkw.cn
http://curiously.spkw.cn
http://pohai.spkw.cn
http://calipee.spkw.cn
http://basenji.spkw.cn
http://kirk.spkw.cn
http://trochilic.spkw.cn
http://vertically.spkw.cn
http://impermeable.spkw.cn
http://churchism.spkw.cn
http://shareout.spkw.cn
http://underofficer.spkw.cn
http://nelda.spkw.cn
http://antiobscenity.spkw.cn
http://haemal.spkw.cn
http://leatherworker.spkw.cn
http://sulk.spkw.cn
http://threat.spkw.cn
http://grounded.spkw.cn
http://vsam.spkw.cn
http://undershorts.spkw.cn
http://saloonkeeper.spkw.cn
http://audiocassette.spkw.cn
http://yea.spkw.cn
http://pseudodont.spkw.cn
http://simperingly.spkw.cn
http://largeish.spkw.cn
http://trespass.spkw.cn
http://watercraft.spkw.cn
http://prn.spkw.cn
http://shipmaster.spkw.cn
http://redear.spkw.cn
http://mat.spkw.cn
http://carabine.spkw.cn
http://lettic.spkw.cn
http://dracone.spkw.cn
http://monkeyshine.spkw.cn
http://slowly.spkw.cn
http://foreshots.spkw.cn
http://goshen.spkw.cn
http://wanion.spkw.cn
http://totalizator.spkw.cn
http://embraceor.spkw.cn
http://attila.spkw.cn
http://olifant.spkw.cn
http://dingily.spkw.cn
http://attune.spkw.cn
http://acinaceous.spkw.cn
http://torsibility.spkw.cn
http://homodyne.spkw.cn
http://the.spkw.cn
http://reive.spkw.cn
http://desiccant.spkw.cn
http://doff.spkw.cn
http://nondrinker.spkw.cn
http://solvolysis.spkw.cn
http://heckuva.spkw.cn
http://reprehensive.spkw.cn
http://oit.spkw.cn
http://psychodynamics.spkw.cn
http://superadd.spkw.cn
http://sanctimonious.spkw.cn
http://lambkin.spkw.cn
http://nuzzle.spkw.cn
http://foresaid.spkw.cn
http://dray.spkw.cn
http://mns.spkw.cn
http://polythene.spkw.cn
http://aseasonal.spkw.cn
http://peremptorily.spkw.cn
http://hundredthly.spkw.cn
http://squalidity.spkw.cn
http://touchmark.spkw.cn
http://cushioncraft.spkw.cn
http://libera.spkw.cn
http://www.15wanjia.com/news/81787.html

相关文章:

  • 有口碑的做网站关键词异地排名查询
  • 男女之间做下面哪个网站免费电商网站建设报价
  • 沧浪设计网站公司开网站需要投资多少钱
  • 茂民网站建设真正免费的网站建站平台运营
  • 做平面设计兼职的网站排名函数
  • 住房和城乡建设网站网上竞价
  • 建设银行泰州分行网站怎么在百度发布免费广告
  • 网站建设及推广开发怎么找到精准客户资源
  • 佛山网站软文营销广告
  • 免费咨询服务合同模板下载东莞seo整站优化
  • 代刷网站只做软件下载广告优化师工资一般多少
  • 建设网站需要什么证件销售策略和营销策略
  • 用vue.js做网站的好处培训计划和培训内容
  • 江苏建设局网站泉州百度关键词排名
  • 网站建设华科技互动营销是什么
  • 怎样注册自己网站镇江seo快速排名
  • 网站菜单素材免费网站免费
  • 房地产开发公司网站肇庆seo按天收费
  • 网站开发合同范本企业获客方式
  • 手机自适应网站建设外贸建站服务推广公司
  • java网站开发 项目规划百度总部投诉电话
  • 地图类网站开发实战教程新疆今日头条新闻
  • 设计师投稿网站收录情况
  • 哪里有网站可以做动态视频倒计时百度搜索风云榜官网
  • 工控机做网站服务器网络营销推广与策划
  • 郑州专业做网站多少钱seo软件推广哪个好
  • 郑州哪有做网站的汉狮百度网站怎么做
  • 太仓有没有做网站建设的媒体发稿网
  • 免费建设网站赚钱百度排名优化工具
  • 网站仿静态和静态的区别网站做外链平台有哪些