Vue+ElementUI后台管理项目问题方法总结

✅ 作者 : 布克吉

🍎简介 : 专注于前端开发,微信小程序,后台管理(Vue+React)

               本博客主要用于分享前端技术知识,更多内容请看下方👇

✨人生态度 :☀️Eventually everything will be fine!☀️


🔥前言

本文章作为个人工作项目总结,积累开发经验,主要针对后台管理项目的开发,包括一些ES6语法,js方法的介绍。有不清楚的或者错误的地方,欢迎评论区讨论。

如果对您有帮助,欢迎收藏、点赞+关注!

目录

1.数组去重 Array.from(new Set( ));

2.翻转键值对

3.el-dialog 弹框设置最小宽度

4.Promise.settle 用法

5.Vuex的 actions中请求数据并存储在store中

6.手写一个switch,只用于数据展示,不可点击,显示三种状态

7.数组_Observer无法遍历问题(三种解决方法)

8.垂直居中 align-items :flex-start

 9.修改elementui组件样式

10.两端对齐,最后一行不满左对齐

11.动态修改打包后网络请求地址或标题

12.修改数据 ,视图不更新解决方法

13.修改el下拉框样式


1.数组去重 Array.from(new Set( ));

例:

Array.from(new Set(['4','6','8','6'])); // ['4','6','8']


2.翻转键值对

方法一 :key和value互换位置,已经封装好,可直接用swapKeyValues(data)

// 翻转键值对
swapKeyValues(data){
    const result = Object.entries(data).map(
        ([prop, propValue]) => 
            { 
                return [propValue, prop]; 
            });
    return Object.fromEntries(result);
},


let arr = {
	a:1,
	b:2
}

let newArr = swapKeyValues(arr)
console.log(newArr);
/* {
	1:a,
	2:b
} */

方法二:

const invert = (obj) => Object.keys(obj).reduce((res, k) =>
 Object.assign(res, { [obj[k]]: k }), {})
invert({name: 'jack'}) // {jack: 'name'}

3.el-dialog 弹框设置最小宽度

使用custom-class定义一个类名,css设置样式 (弹框不要给百分比宽度属性,他的优先级比较高会覆盖设置的最小宽度)

<el-dialog 
    :visible.sync="dialogSyncLibrary"
    custom-class="syncwidth"
    style="border-radius: 10px;height: 950px;"
></el-dialog>
/deep/ .syncwidth{
		min-width: 960px;
	}

4.Promise.settle 用法

什么情况下使用?

当一次或一个请求的结果无法满足需求,需要等全部结果返回后再做处理时。

Promise.all与Promise.allSettled区别 ?

使用方法相同。

all当有请求失败时,请求队列就被终止,allSettled不管失败与否,会执行完所有请求。

第一步,定义异步函数

PUBindPlatform(request) {
	return new Promise((resolve, reject) => {
		let _this = this
		_this.$Api.PUBindPlatform({
			request
		}).then(function(res) {
			let response = res.data.response
			if (response.errorCode === '200') {
				resolve()
			} else {
                reject()
			}
		})
	})
},

第二步,将函数添加进执行队列

let promises = []
//将需要异步的函数push进去
promises.push(this.PUBindPlatform(request))
	

 第三步,获取返回结果,下一步处理

if (promises.length > 0) {
	Promise.allSettled(promises).then(response => {
		console.log(response);
        //结果为数组形式 遍历response
        response.forEach(item=>{
            if(item.status=="fulfilled"){
                //resolve返回的结果
                console.log(item.value)
            }else if(item.reason=="reject"){
                //reject返回的结果
                console.log(item.value)
            }

        })
        
	})
}

5.Vuex的 actions中请求数据并存储在store中

什么情况下使用?

多个页面需要相同的数据,进入页面时判断,

如果store数据已存在,则直接用;如果没有,则调用action中的方法请求数据

难点有3个

getPUResource({dispatch, commit })

(1)参数dispatch,用于该函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值