1. 程式人生 > >Vue與Element走過的坑。。。。帶上Axios

Vue與Element走過的坑。。。。帶上Axios

1.Axios中post傳參陣列(java後端接收陣列)

雖然源資料本身就是陣列,但是傳參時會自動變成key:數值或者伺服器無法接收的物件,如下

如果不仔細看,很容易認為這兩種情況沒毛病。。(後端不背鍋,哈哈)

第一種方式轉化為陣列:JSON.stringify

_this.item.push(row.id);//此處_this.item是陣列
const params = new URLSearchParams();
params.append("item",JSON.stringify( _this.item));

第二種方式:此處貼上程式碼(解釋不喜勿噴)

transformRequest: function (data) {
data = qs.stringify({
item: JSON.stringify(_this.item)
});
return data
}

最後真正傳參的格式:

2.Element篇

1.el-table實現單擊行且高亮執行賦值

css別忘了。。。。

2.el-table實現表頭居中且內容居中

3.el-cascader獲取點選的各級資料

val==》要接收的空陣列(繫結的資料)opt==》需要遍歷資料來源

配合@change使用:

image

就能實時獲取想要的資料。。。。。至於如何清空,直接將v-model繫結的資料清空即可。。。

4.el-menu動態生成(遞迴)

a.準備樹形資料來源(欄位按個人需求,這裡給出樓主的思路)

b.實現el-menu裡包含的el-submenu(個人是直接抽取出來,通過props賦值)

index有個坑,,好像得變成字串,所以加上“”,其實本來就是字串。。。。這裡使用得是遞迴思想生成dom

c:el-menu中使用

準備好第一步得資料來源即可。。。。

5:el-table中使用el-switch(附帶此時事件方法)

這裡繫結數字得前面加上  :。。

6.樹形表格,網上找了好多個人封裝的,總是有些bug和其它問題,最後想到了vue版的Easyui,果然還是Easyui處理資料強大。。直接上圖展示

此處資料來源也是樹形資料,採用遞迴完成,前面的圖示是通過修改原始碼新增的幾個。。

7.css問題

關於每個.vue中css,之前一直採用scope,,,但是打包之後發現失效了,,最後採用lang=scss方式,需要npm下載。。,最外層樣式就是每個模板的頂級class括起來,這樣也就避免了css全域性汙染啥的。。。。

8.跨域問題解決。。。

配置之後的請求縮寫。。

配置config中index即可。。。但是產生了打包之後不存在跨域,,,,(難道打包之前把一個個請求的url修改。。。。那會封吧)

解決方案:

1.配置config中dev.env.js檔案

這裡/api就是開發環境剛剛代理跨域的地址

2.配置config中prod.env.js檔案

這裡配置一個相對路徑,就能自由切換各種環境。。。。

3.設定請求時的路徑,這裡使用axios

這裡沒封裝,簡單的寫一下。。。。主要第一行和第四行

此時請求的寫法:

api沒了,,此時就配好了開發時跨域請求和打包之後的不跨域,,,webpack打包時會自動切換。。。

暫時就這麼多,好多碰到的問題暫時沒想起來。。。。。。