小言_互联网的博客

React开发CMS总结(基础配置)

325人阅读  评论(0)

1、配置less和ant

yarn add webpack@4.44.2:注意版本,高版本出现问题
yarn add less-loader:less解析插件
yarn ejcet:暴露配置信息
yarn add antd

config/webpack.config.js设置参考:https://blog.csdn.net/yoonerloop/article/details/115361998

2、Promise

是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法。

    (1)当new Promise()执行之后,promise对象的状态会被初始化为pending,这个状态是初始化状态。new Promise()这行代码,括号里的内容是同步执行的。括号里定义一个function,function有两个参数:resolve和reject。如下:

        如果请求成功了,则执行resolve(),此时,promise的状态会被自动修改为fullfilled。

        如果请求失败了,则执行reject(),此时,promise的状态会被自动修改为rejected

    (2)promise.then()方法,括号里面有两个参数,分别代表两个函数 function1 和 function2:

        如果promise的状态为fullfilled(意思是:如果请求成功),则执行function1里的内容

        如果promise的状态为rejected(意思是,如果请求失败),则执行function2里的内容

另外,resolve()和reject()这两个方法,是可以给promise.then()传递参数的。


  
  1. //设置Promise
  2. let promise = new Promise( (resolve, reject) => {
  3. if (!err) {
  4. resolve(data)
  5. } else {
  6. reject(err)
  7. }
  8. })
  9. })
  10. //回调Promise
  11. promise.then( (res) => {
  12. console.log( JSON.stringify(res)+ '----1--')
  13. }, (error)=>{
  14. console.log( JSON.stringify(error)+ '-----2---')
  15. }).catch( (error) => {
  16. console.log( JSON.stringify(error)+ '------3---')
  17. })

其他常用API:

Promise 自带的API提供了如下对象方法。

Promise.all():并发处理多个异步任务,所有任务都执行成功,才能得到结果。


  
  1. Promise.all([promise1, promise2, promise3]).then( result => {
  2. console.log(result);
  3. });

Promise.race(): 并发处理多个异步任务,只要有一个任务执行成功,就能得到结果。


  
  1. Promise.race([promise1, promise2, promise3]).then( result => {
  2. console.log(result);
  3. });

3、配置jsonp

jsonp一般进行二次封装,写成工具类使用。

yarn add jsonp


  
  1. import JsonP from 'jsonp'
  2. export default class request {
  3. static jsonp(options) {
  4. return new Promise( (resolve, reject) => {
  5. JsonP(options.url, {
  6. param: 'callback',
  7. }, (err, data) => {
  8. if (!err) {
  9. resolve(data)
  10. } else {
  11. reject(err)
  12. }
  13. })
  14. })
  15. }
  16. }

使用:


  
  1. import request from "../../request/index";
  2. getWeather() {
  3. request.jsonp({
  4. url: 'http://api.k780.com/?app=weather.today&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json',
  5. }).then( (res) => {
  6. console.log( JSON.stringify(res)+ '----1--')
  7. }, (error)=>{
  8. console.log( JSON.stringify(error)+ '-----2---')
  9. }).catch( (error) => {
  10. console.log( JSON.stringify(error)+ '------3---')
  11. })
  12. }

4、时间显示


  
  1. export default {
  2. formatDate(time) {
  3. if (!time) {
  4. return '';
  5. }
  6. let data = new Date(time)
  7. return data.getFullYear()
  8. + '-' + (data.getMonth() + 1)
  9. + '-' + data.getDate()
  10. + ' ' + data.getHours()
  11. + ':' + data.getMinutes()
  12. + ':' + data.getSeconds();
  13. }
  14. }

  
  1. componentWillMount() {
  2. setInterval( () => {
  3. let systemTime = Util.formatDate( new Date().getTime())
  4. this.setState({systemTime})
  5. }, 1000);
  6. }

5、倒三角实现

使用css3伪类选择器实现


  
  1. .title {
  2. text-align: center;
  3. font-size: 18px;
  4. &:after {
  5. position: absolute;
  6. content: '';
  7. left: 50px;
  8. border-top: 9px solid red;
  9. border-left: 12px solid transparent;;
  10. border-right: 12px solid transparent;;
  11. top: 39px;
  12. left: 96px;
  13. }
  14. }

6、全局资源设置

定义default.less:


  
  1. /** 常用色值 **/
  2. @color1: #f9c700;
  3. @color2: #ff5400;
  4. /** 常用字体大小 **/
  5. @font1: 34px;
  6. @font2: 20px;

使用:


  
  1. @ import "../../style/default";
  2. .home {
  3. height:calc( 70vh);
  4. width: calc( 100%);
  5. display: flex;
  6. align-items: center;
  7. justify-content: center;
  8. font-size: @font2;
  9. background-color: @color1;
  10. }

7、项目源码

https://download.csdn.net/download/yoonerloop/16725861

8、效果图

 

 

 

 


转载:https://blog.csdn.net/yoonerloop/article/details/115786114
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场