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

电子商务网站建设和维护网站维护中什么意思

电子商务网站建设和维护,网站维护中什么意思,微信公众号的微网站开发,太原网站建设技术托管Axios 1. Axios 和 Ajax 简介2. Axios 和 Ajax 的区别3. 从 按钮 到 Axios请求后端接口的 大致顺序 1. Axios 和 Ajax 简介 Ajax(Asynchronous JavaScript and XML) 不是一种技术,而是一个编程技术概念,核心是通过 XMLHttpReques…

Axios

    • 1. Axios 和 Ajax 简介
    • 2. Axios 和 Ajax 的区别
    • 3. 从 按钮 到 Axios请求后端接口的 大致顺序

1. Axios 和 Ajax 简介

Ajax(Asynchronous JavaScript and XML) 不是一种技术,而是一个编程技术概念,核心是通过 XMLHttpRequest 对象实现异步通信。

Axios 是一个独立的库,它既在浏览器环境中使用了 XMLHttpRequest,又在服务端使用 原生node.js http 模块。

2. Axios 和 Ajax 的区别

特性原生 Ajax(XMLHttpRequest)Axios
使用方式需要手动创建 和 管理 XMLHttpRequest 对象提供简洁的 API,如 axios.get()axios.post()
异步处理使用回调函数基于 Promise,支持 async/await
功能扩展功能有限,需手动实现内置拦截器、请求取消、自动转换 JSON 等功能
跨平台支持仅限浏览器支持浏览器和 Node.js

3. 从 按钮 到 Axios请求后端接口的 大致顺序

  1. 点击按钮
    点击按钮时,触发 @click 点击事件,就到了 login 函数。

    在这里插入图片描述

    <!-- 登录按钮 -->
    <el-form-item><el-button class="button" type="primary" auto-insert-space @click="login">登录</el-button>
    </el-form-item>
    
  2. login里请求接口的函数,写在了 user.js 文件中
    Login.vue

    示例代码

    import { userLoginService } from '@/api/user.js'
    import { ElMessage } from 'element-plus'//导入路由 router
    import {useRouter} from 'vue-router'
    const router = useRouter();//导入 有Pinia函数的token.js文件
    import { useTokenStore } from '@/stores/token'
    const tokenStore = useTokenStore();//登录函数 login
    const login = async () => {//调用接口,完成登录let result = await userLoginService(registerData.value);//alert(result.msg ? result.msg : '登录成功');ElMessage.success(result.msg ? result.mag : '登录成功');//把得到的token存储到pinia中tokenStore.setToken(result.data);//跳转到首页,使用useRouter切换组件,完成跳转router.push('/');
    }
    
  3. user.js 里的请求,都统一用 request.js 请求工具来完成
    在这里插入图片描述
    示例代码

    //导入request.js请求工具
    import request from '@/utils/request.js'//提供调用主次接口的函数
    export const userRegisterService = (registerData) => {//借助于UrlSearchParams完成传递const params = new URLSearchParams();for (let key in registerData) {params.append(key, registerData[key]);}return request.post('/user/register', params);
    }export const userLoginService = (loginData) => {const params = new URLSearchParams();for (let key in loginData) {params.append(key, loginData[key])}return request.post('/user/login', params);
    }
    
  4. 在请求工具 request.js 里,导入了Axios,并创建了请求拦截器响应拦截器
    有了拦截器,就可以在 请求服务前得到响应后 统一处理数据。
    在这里插入图片描述

    示例代码:

    //这里边相当于请求的工具,用来定制请求的实例//导入axios: npm install axios
    import axios from 'axios';//导入Message消息提示
    import { ElMessage } from 'element-plus';//定义一个变量,记录公共的前缀,baseURL
    // const baseURL = 'http://localhost:8080';
    // 这里的'/api'只是给后台访问的请求路径添加一个标识
    const baseURL = '/api';/*  axios.create()方法,把baseURL作为参数传入,该方法返回一个请求的实例instance,以后发送请求时,就不用axios.get了,直接用instance.get就可以 */
    const instance = axios.create({ baseURL })/* axios提供的拦截器,在请求或响应,被then或catch处理前拦截也就是在请求发出之前,有一个请求拦截器或在响应到达之前,有一个响应拦截器 *///导入Pinia
    import { useTokenStore } from '@/stores/token';
    //添加请求拦截器
    instance.interceptors.request.use((config) => {//请求前的回调const tokenStore = useTokenStore();//在pinia中定义的响应式数据,都不需要.valueif (tokenStore.token) {config.headers.Authorization = tokenStore.token;}return config},(err) => {//请求错误的回调Promise.reject(err);}
    )/* 由于模块加载的顺序,不能这样导入import { useRoute } from 'vue-router';const router = useRoute(); 
    */
    //这样导入就能用了
    import router from '@/router'//添加响应拦截器(这个拦截器本身就是异步的)
    instance.interceptors.response.use(//成功的回调result => {//判断业务状态码if (result.data.code === 0) {return result.data;}//操作失败ElMessage.error(result.data.msg ? result.data.msg : '服务异常');//异步操作的状态转换为失败return Promise.reject(result.data);},//失败的回调err => {//判断响应状态码,若为401,则说明未登录,提示请登录,并跳转到登录页面if(err.response.status === 401){ElMessage.error('请先登录');router.push('/login');}else{ElMessage.error('服务异常');}//异步的状态转化成失败的状态return Promise.reject(err);}
    )//把请求的实例instance导出,供其他地方调用
    export default instance;
    

    上述代码中的 const baseURL = ‘/api’,在另一篇文章 vue处理跨域问题 里有详细描述。


文章转载自:

http://yBsMEQ2g.wbLLx.cn
http://XsVp2ODM.wbLLx.cn
http://vvHWG9lp.wbLLx.cn
http://p5V9l67k.wbLLx.cn
http://l9RhX8FX.wbLLx.cn
http://NBXT2anz.wbLLx.cn
http://bxC1cuQr.wbLLx.cn
http://KdWkc6xL.wbLLx.cn
http://mUt7WeCc.wbLLx.cn
http://qzahqcRf.wbLLx.cn
http://myThC2Lp.wbLLx.cn
http://crJuEyXJ.wbLLx.cn
http://jIStYb9y.wbLLx.cn
http://N0iSQXRx.wbLLx.cn
http://beNTk4PB.wbLLx.cn
http://M1SIdJEL.wbLLx.cn
http://GsVJRsfT.wbLLx.cn
http://n7lDXg5S.wbLLx.cn
http://aGL8QWPd.wbLLx.cn
http://Xdm8k1lj.wbLLx.cn
http://cDgKwIjQ.wbLLx.cn
http://HjtHXF6i.wbLLx.cn
http://R5dfmtFO.wbLLx.cn
http://TcIqpkNX.wbLLx.cn
http://4vGDeNpX.wbLLx.cn
http://BW4L0gQq.wbLLx.cn
http://shiXGhUF.wbLLx.cn
http://hYJlbc2X.wbLLx.cn
http://OoUS4CKe.wbLLx.cn
http://jvHpvpHP.wbLLx.cn
http://www.dtcms.com/wzjs/691224.html

相关文章:

  • 大地资源在线资源免费观看资源企业网站排名优化价格
  • 建设一个电影网站怎么做江苏建设招标信息网站
  • 百度上搜不到网站网站建设要经历哪些步骤?
  • 在网站开发中哪里需要js文件汕头论坛贴吧
  • 佛山做外贸网站如何自己做跨境电商
  • 网站开发里程碑制作网页方案
  • 诸城手机网站建设太原网站建设斯飞网络
  • 网站搭建开发网站开发技术都有哪些
  • 一个静态网站开发考虑什么运营和营销哪个更好
  • 哪个建立网站好长沙营销推广
  • 罗湖网站建设优化wordpress文件上传位置
  • 网站建设semWordPress主题(模板)制作教程
  • 四川省四川省住房和城乡建设厅网站网站建设 中关村
  • 服装鞋帽 网站建设网站正常打开速度
  • 思维导图在线制作网站网站怎么发邮件
  • 怎么把搜到自己的网站电子商务网站建设项目范围
  • 东八区网站建设云指网站开发
  • 网站的差异执念待重生wordpress
  • 南通做百度网站的公司网站包包网站建设策划书
  • 专业公司网站建设服务公司辽宁建设工程信息网评标专家入库
  • 网站怎么做用什么软件湖南省建设厅官网网站
  • 做家装的网站太原自助建站系统
  • 营销推广的方法有哪些seo营销学校
  • 图片点击切换网站模板执法网站建设方案
  • 专业提供建站模板的公司网络规划设计师学历低
  • 河北建设教育培训网站项目计划书ai生成
  • 自己怎么注册网站临淄信息网123
  • 大网站建设网站后台登陆密码破解
  • 萍乡市建设局网站网站做一样算不算侵权
  • 深圳英文网站建设公司安阳宣传片制作公司