vue3项目创建及请求配置
一、创建项目
首先安装vue:安装或者升级vue:npm install -g @vue/cli
保证 vue cli 版本在 4.5.0 以上:vue --version
1、使用vue-cli创建:
创建一个项目 | Vue CLI
创建项目:vue create 项目名称
选择以下选项:
看自己是否需要保存
在终端输入:cd 项目名称
npm run serve(运行)
2、使用vite创建:
快速上手 | Vue.js
在终端输入:npm init vue@latest
输入项目名称
按需求选择,例如:
输入:cd 项目名称
npm i
npm run dev(运行)
二、请求配置
安装axios:npm i axios -S(开发和上线都用)
npm i axios -D(开发用)
1、虚拟接口:
创建:public->data->名称.json:(代码根据自己的需求写),有两种方式,
例如:方式1:
{
"id":1,"name":'石家庄',"distance":'100m'
}
例如:方式2:
[{"id":1,"name":'石家庄',"distance":'100m'},{"id":2,"name":'衡水',"distance":'100m'}
]
封装axios:src->hooks->request.ts:
import { ref } from 'vue'
import axios from 'axios'/*
使用axios发送异步ajax请求
*/
export default function useUrlLoader<T>(url: string) {const result = ref<T | null>(null)const loading = ref(true)const errorMsg = ref(null)axios.get(url).then(response => {loading.value = falseresult.value = response.data}).catch(e => {loading.value = falseerrorMsg.value = e.message || '未知错误'})return {loading,result,errorMsg,}
}
利用:新建页面:例如:request.vue(发送请求,把数据渲染上去):
对应上面的方式1:
<template><div class="about"><h2 v-if="loading">LOADING...</h2><h2 v-else-if="errorMsg">{{errorMsg}}</h2><ul v-else><li>id: {{result.id}}</li><li>name: {{result.name}}</li><li>distance: {{result.distance}}</li></ul></div>
</template><script lang="ts">
import useRequest from '../hooks/request'// 地址数据接口
interface AddressResult {id: number;name: string;distance: string;
}// 产品数据接口
interface ProductResult {id: string;title: string;price: number;
}export default {setup() {const {loading, result, errorMsg} = useRequest<AddressResult>('/data/名称.json')return {loading,result,errorMsg}}
}
</script>
对应上面的方式2:
<template><div class="about"><h2 v-if="loading">LOADING...</h2><h2 v-else-if="errorMsg">{{errorMsg}}</h2><ul v-for="p in result" :key="p.id"><li>id: {{p.id}}</li><li>title: {{p.name}}</li><li>price: {{p.distance}}</li></ul></div>
</template><script lang="ts">
import useRequest from '../hooks/request'// 地址数据接口
interface AddressResult {id: number;name: string;distance: string;
}// 产品数据接口
interface ProductResult {id: string;name: string;price: number;
}export default {setup() {const {loading, result, errorMsg} = useRequest<ProductResult[]>('/data/名称.json')return {loading,result,errorMsg}}
}
</script>
配置路由:
{path: '/request',component: romeView},
2、真实接口
配置代理(解决跨域问题):vue.config.js(该文件改了之后需要重启项目)
跨域错误:
//配置代理devServer:{//所有的配置项proxy:{//配置'/course-api':{//代理名称,这里最好有一个target:'https://course.myhope365.com/api', // 后台接口域名changeOrigin:true,//是否跨域pathRewrite:{'^/course-api':''//路径重写}},// 'api':{// target:'https://course.myhope365.com', // 后台接口域名// changeOrigin:true,//是否跨域// // pathRewrite:{// // '^/course-api':''//路径重写// // }// },}}
};
创建页面:src->views->名称.vue:
<template><div>
<!-- ref的-->
<!-- <div v-for="i in list" :key="i.id">-->
<!-- <img :src="i.imgUrl" alt="">-->
<!-- </div>--><!-- reactive的-->
<!-- <div v-for="i in list.swiperList" :key="i.id">-->
<!-- <img :src="i.imgUrl" alt="">-->
<!-- </div>--></div>
</template><script>
import axios from "axios"
import {ref,reactive} from 'vue'
export default {name: "cou",setup(){// let list = ref([])let list = reactive({swiperList:[]})axios.get('/course-api/weChat/applet/course/banner/list?number=4').then(res=>{console.log(res)//ref的// list.value = res.data.data// reactive的list.swiperList = res.data.data})return {// list}}
}
</script><style scoped></style>
vue3项目创建及请求配置相关推荐
- vue3 项目创建(UI图形化界面方式,可视化操作Vue项目,vue ui)
vue3 项目创建 (UI图形化界面方式,可视化操作Vue项目,vue ui) 目录 一.图形化界面方式搭建vue3 项目前提条件 1.检查node 和 @vue/cli 版本信息 2.升级你的 No ...
- vue3项目创建运行报错sockjs.js?9be2:1609 GET http://192.168.17.53:8080/sockjs-node/info?t=1637203080085
报错sockjs.js?9be2:1609 GET http://192.168.17.53:8080/sockjs-node/info?t=1637203080085 net::ERR_CONNEC ...
- SpringBoot+layui实现简单登录(项目创建+前后端配置)
后端技术 开发工具 IDEA Java 1.8 项目构建 spring boot 2.6.7 项目管理 maven 3.6.3 持久层 mybatis-plus 3.5.0 数据库 MySQL 8.0 ...
- SkeyeWebPlayer.js H5播放器开发之webpack项目创建级编译配置(一)
SkeyeWebPlayer.js H5播放器开发之播放器动态渲染video. 动态渲染是采用js进行创建dom.添加dom.添加class.style等方式操作dom元素.最终将播放器编译成成一个独 ...
- Python网站导航项目-2.项目创建与环境配置
每每用到别人的导航网站会充斥的各种的广告,以及很多无用的内容,用起来真的很烦人.把内容网址收藏到浏览器中又很不方便,因此基于git的前端代码结合Django Web开发自制一套简易的导航网站项目. 项 ...
- Python个人主页项目-2.项目创建与环境配置
学习Python已经6年有余,从事的行业数据分析师,算法工程师.爬虫工程师.目前准备正式入行全栈,先做一个个人的博客系统,用来记录日常工作的每一天,也是为自己做一个展示自己的空间. 同时也为大家提供一 ...
- vue3项目实战的请求接口问题(一)跨域问题+解决方法
vue3 跨域问题➕常用解决方法 前言引入 跨域问题 解决跨域问题常用方法
- vue3 项目部署,Nginx配置https,重定向,详细流程
文章目录 前情提要 应用场景 安装 使用 实战解析 最后 前情提要 一个web项目完成后,我们需要打包部署上线,关于打包的实战在我的vite专栏里已经有过一些实践,今天我们来实践一些部署的过程,当然部 ...
- 构建第一个Spring Boot2.0应用之项目创建(一)
1.开发环境 IDE: JAVA环境: Tomcat: 2.使用Idea生成spring boot项目 以下是使用Idea生成基本的spring boot的步骤. (1)创建工程第一步 (2)创建工 ...
最新文章
- Js获取下拉框选定项的值和文本
- win 修改jvm时间_Windows 下修改Tomcat jvm参数
- Java开发的几个注意点
- servlet解析演进(2-1)
- 2014 网选 上海赛区 hdu 5047 Sawtooth
- Linux 环境变量设置及查看
- citypersons数据集下载
- python制作词作云动画_3分钟教你用python制作一个简单词云
- 【空间分析-文章学习笔记】1 基于卫星数据反演及空间分析方法对由pm2.5引导的中国男性肺癌的发病率的预测
- Tinker生成补丁包
- 阿里云储存OSS(服务端签名后前端直传)
- php呼叫平台,php – Twilio呼叫转发
- [UE4][C++]简单超人小游戏(游戏接受键盘事件)
- 水哥王昱珩的教育语录:输不丢人,怕输才丢人
- dede标签属性(转载)
- 计算机综合布线实验报告,综合布线设计实验报告.doc
- K_A07_003 基于 STM32等单片机驱动DRV8825模块按键控制步进电机正反转
- imac 27寸 安装 win 7 黑屏问题,完美解决办法!
- 读书笔记:《穷爸爸富爸爸》——Robert T. Kiyosaki
- C#连接云服务器MySql数据库
热门文章
- 税务加强计算机相关知识培训,贺州市地税局推行分类分级培训提升干部素质
- 百城巡展 | 人大金仓5月联合伙伴释放数字活力奏响发展强音
- 酞菁钴COPC,酞菁钴(II),cAS:3317-67-7
- 推荐系统的主要算法(2)
- Win10(Win7)设置固定IP地址
- Valheim英灵神殿服务器端口2456-2457-2458开启
- 如何把VS背景设置成豆沙色
- Ctrl+C、Ctrl+V不好使怎么办?windows系统热键占用查询
- 存储服务器内的温度检测信号线 用线,存储环境监测与数据记录系统设计
- log(A/B) = logA -logB 证明