当前位置:   article > 正文

vue3+TypeScript+pinia+axios项目配置_vue3 pink +axios

vue3 pink +axios

1.创建项目文件夹

  • 创建一个文件夹
  • 打开命令提示符后,输入vue create .    ||     vue create 项目名称
  • 回车后按y同意创建项目

2.配置基础项目

 

  • 通过上下控制键选择最后一个Manually Select features手动配置项目
  •  然后按空格选择要使用的配置

  •  然后回车,确定配置项

  •  选择3.x版本,然后回车

  •  后出现三次选项,全部选择n后,出现上述画面,然后选择要用的css预处理器,这里我选择less,然后回车

  •  默认选择Mocha +Chai,回车

  •  之后选择package.json作为工具包的配置项,然后回车

 

  •  这里是是否保存为预设,可以保存方便下次直接选择,我因为已经保存了我这里选择n

 

  • 这里是脚手架下载完毕

3.配置px转rem,这里如果是移动端则配置,其余无需配置

cnpm i lib-flexible postcss-px2rem-exclude  --save

  •  用vscode打开项目中的main.ts
import 'lib-flexible'

  •  在根目录下创建vue.config.js文件并加入下面这些代码
  1. // vue.config.js
  2. module.exports = {
  3. css:{
  4. loaderOptions:{
  5. postcss:{
  6. plugins:[
  7. require('postcss-px2rem-exclude')({
  8. remUnit:75, // 设计稿宽/10
  9. exclude:/node_modules/
  10. }),//换算的基数
  11. ]
  12. }
  13. }
  14. },
  15. }

在package.json中添加以下代码 

  1. "postcss":{
  2. "plugins":{
  3. "autoprefixed":{}
  4. }
  5. }

  •  然后npm run serve启动项目查看效果

 

 4.配置反向代理 

在vue.config.js中添加以下代码

  1. devServer: {
  2. proxy: {
  3. //配置跨域
  4. '/api': {
  5. target: 'http://localhost:9090', //这里是后端接口地址
  6. changeOrigin: true,
  7. pathRewrite: {
  8. '^/api': ''
  9. }
  10. }
  11. },
  12. open: true //启动项目自动打开浏览器
  13. },
  14. lintOnSave: false // 关闭语法检查

 在cmd中下载axios依赖

cnpm i axios --save
  •  在src目录下创建api文件夹,并创建request.ts、index.ts、controller.ts文件

 

  1. import axios from "axios";
  2. const Serivce = axios.create({
  3. timeout: 2000,
  4. headers: {
  5. "Content-Type": "application/json"
  6. },
  7. });
  8. // 请求拦截
  9. Serivce.interceptors.request.use((config) => {
  10. console.log(config);
  11. return config;
  12. }, (err) => { Promise.resolve(err) });
  13. // 响应拦截
  14. Serivce.interceptors.response.use((config) => {
  15. let res = config.data;
  16. if (config.config.responseType === "blob") {
  17. return res;
  18. }
  19. if (typeof res === "string") {
  20. res = res ? JSON.parse(res) : res;
  21. }
  22. return res;
  23. }, (err) => { Promise.reject(err) });
  24. export default Serivce;
  • 在controller.ts中写出如下代码,定义接口函数
  1. export interface LoginParameter {
  2. username: string;
  3. password: string;
  4. }
  5. // 登录接口
  6. export function Login(config: LoginParameter) {
  7. const params = new URLSearchParams();
  8. params.append("username", config.username);
  9. params.append("password", config.password);
  10. return Serivce({
  11. url: "/api/login",
  12. params: params,
  13. method: "get"
  14. })
  15. }

  •  然后在index.ts中写入如下代码
export * from "./controller";

 反向代理配置就完成,文章中vue.config.js代理路径可更换自己的api路径

5.pinia状态管理工具配置

  • 在src下常创建store文件夹,并创建index.ts文件写入如下代码
  1. import { defineStore } from "pinia";
  2. import { ref } from "vue";
  3. const LoginStore = defineStore("11", () => {
  4. const count = ref<number>(100);
  5. return {
  6. count
  7. }
  8. })
  9. export default LoginStore
  • 然后在main.ts中引入pinia

  •  在home.vue中引入store文件夹并写入一下代码
  1. <template>
  2. <div class="brand-container">
  3. <h1>{{ LoginStore().count }}</h1>
  4. </div>
  5. </template>
  6. <script lang="ts" setup>
  7. import LoginStore from "@/store/modules/1"; // 引入自己项目中规定文件夹即可,我所使用的是老项目
  8. </script>
  9. <style lang="less" scoped></style>

 pinia配置就完成了

以上就是配置的全部内容

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/225654
推荐阅读
相关标签
  

闽ICP备14008679号