发表日期: 2021-06-03 15:28:06 浏览次数:120
泸州微信公众号开发【泸州网络推广】泸州建站、泸州网站维护、泸州网页制作、泸州微信小程序代运营公司

泸州,古称“江阳”,别称酒城、江城 [75] ,是四川省地级市,全国区域中心城市 [75] ,川渝滇黔结合部区域中心城市和成渝地区双城经济圈南翼中心城市 [1] 、重要的商贸物流中心,长江上游重要的港口城市。截止2020年12月底,全市乡镇政区126个,面积12232.34平方公里。2020年末全市公安户籍登记户数158.09万户,户籍总人口507.95万人,其中乡村人口305.71万人,城镇人口202.24万人,户籍人口城镇化率39.8% [12] ;2020年泸州市常住人口4254149人 [86] 。
泸州是国家历史文化名城,具有两千多年历史文化;西汉设江阳侯国;梁武帝大同年间建置泸州;泸州在宋代即为西南要会,明代即与成都、重庆三足鼎立,成为当时全国33个商业大都会之一。 [76] 形成了以名酒文化、生态文化、红色文化、历史文化、长江文化为代表的五大特色旅游资源;拥有国家4A级旅游景区7个,国家3A级旅游景区6个,国家2A级旅游景区9个。 [3-4] [75]
泸州是长江中上游地区第二大集装箱码头,四川第三大航空港 [77] ;也是第三批国家新型城镇化综合试点地区、跨境电子商务综合试验区;世界级白酒产业基地,国家重要的以名优酒为主体的食品工业基地、循环型化工基地、清洁能源生产基地、国家高性能液压件高新技术产业化基地、国家9大工程机械生产基地之一。 [2]
先后获得过联合国改善人居环境最佳范例奖(迪拜奖)、中国地级市民生发展100强、国家卫生城市、中国优秀旅游城市、国家森林城市、国家园林城市、全国文明城市、国家水生态文明城市等荣誉。 [5-6]
web端三大框架react、vue和angular,本篇教程介绍react的从入门到精通。
如何在 React 中发起 AJAX 请求?
在 React 开发中,你能使用任何你喜欢的 AJAX 库,比如社区比较流行的 Axios,jQuery AJAX,或者是浏览器内置的 window.fetch。
class MyComponent extends React.Component { constructor(props) { super(props); this.state = { error: null, isLoaded: false, items: [] }; } componentDidMount() { fetch("https://api.example.com/items") .then(res => res.json()) .then( (result) => { this.setState({ isLoaded: true, items: result.items }); }, // 注意:需要在此处处理错误 // 而不是使用 catch() 去捕获错误 // 因为使用 catch 去捕获异常会掩盖掉组件本身可能产生的 bug (error) => { this.setState({ isLoaded: true, error }); } ) } render() { const { error, isLoaded, items } = this.state; if (error) { return <div>Error: {error.message}</div>; } else if (!isLoaded) { return <div>Loading…</div>; } else { return ( <ul> {items.map(item => ( <li key={item.name}> {item.name} {item.price} </li> ))} </ul> ); }}}官方给出的是fetch发出的请求,但是追梦猪是从vue过来的所以喜欢axios请求,不过你也可以使用普通的jquery的$.ajax请求这样都是被允许的
当然也可以使用ajax的方法进行数据交互
$.ajax({ type: "POST", url:"此处填url地址", contentType: "application/json; charset=utf-8", data: JSON.stringify("此处填header请求头"), dataType: "json", success: function (message){ }})如果你是axios请求的爱好者使用如下:
文档目录

config.js存放公共的url请求路径
index.js封装的请求暴露文件
request.js存放axios的请求拦截和响应拦截
config.js代码如下;
/
统一定义接口,有利于维护
/
const URL= 'https://app.kpcx179.com/' ;//开发环境export default URL
根据自己需求定义请求的地址
request.js代码如下:
import axios from 'axios';axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'axios.interceptors.request.use(//请求参数设置 config => { console.log(config) if (localStorage.getItem('token')&&localStorage.getItem('token')!==undefined&&localStorage.getItem('token')!=='') { config.headers.common['token'] = localStorage.getItem('token'); }else{ window.location.href='/#/login' } return config }, err => { return Promise.reject(err) })axios.interceptors.response.use(//响应请求 config => { console.log(config) if (config.data.code==101046) { window.location.href='/#/login' }else{ if (localStorage.getItem('token')&&localStorage.getItem('token')!==undefined&&localStorage.getItem('token')!=='') { localStorage.setItem('token', config.headers.token); } } return config }, err => { return Promise.reject(err) })export default axiosindex.js代码如下:
import React from 'react';import request from './request';import config from './config';let axios = { get(url, params, headers) { let options = {}; params && (options.params = params); headers && (options.headers = headers); return request.get(config+url, options); }, post(url, params, headers) { let options = {}; headers && (options.headers = headers); return request.post(config+url, params, options); }}React.$http = axios在react脚手架创建的项目中,类似像axios请求这样的公共方法,需要给它设定到一个全局的方法中。|
对比vue,vue可以直接在main.js中直接Vue.prototype.$axios = function(){}这样的形式绑定全局的方法。这样就不用每一个vue文件都去引用axios这个文件了,也方便进行统一的管理。
那么react是不是也可以类似的在index.js中react.prototype绑定全局方法呢。答案是不行!!!
分析
直接在index.js中打印
console.log(React.prototype)
//undefined
和vue不一样,vue需要将vue new成对象才能使用并且每个vue文件直接通过this就能获取到vue对象上定义的东西。但是react不需要new成对象就可以直接使用。
方法
直接在index.js中
React.$axios = function () {}
绑定方法;然后每个子页面的js文件中React.$http 直接获取到这个方法
封装的方法如下图:

效果图如下:

如果你对上面的一无所知的话可以访问追梦猪git下载demo实现快捷开发,省掉安装的步骤
追梦猪react项目demo实例(https://github.com/jiawenguang/React-demo.git)
可以通过git clone方式下载项目结构。