vue學習中遇到的問題
1、axios使用post傳值時無法使用鍵值對傳值的問題
問題的原因:主要是HTTP請求中的get請求和post請求參數的存放位置是不一樣的,get請求的參數以鍵值對的方式跟在url后面的,而post請求的參數是以鍵值對的方式在請求體里的,axios的post默認是application/json格式
解決方法:1、修改請求頭"Content-Type"為“application/x-www-form-urlencoded”
2、使用Qs.stringify()序列化數據(Qs是axios自帶的,直接引入即可import Qs from "qs")
使用Qs序列化例子:Qs.stringify({"data": JSON.stringify(param)}) //當參數param為json時需要轉為json字符串,而Qs序列中的data為鍵名
2、a標簽本地文件下載
問題描述:Vue中a標簽跳轉而非下載,會在url上顯示文件路徑,但并不會下載
<a class="highLight" :href="docUrl" :download="downNm">《合眾附加綜合交通工具意外傷害醫療保險(2013修訂)》</a>
export default { data() { return { docUrl: '../assets/doc/合眾附加綜合交通工具意外傷害醫療保險(2013修訂)條款.doc', downNm: '合眾附加綜合交通工具意外傷害醫療保險(2013修訂)條款.doc' } } }
解決方法:本地下載文件不能放在src目錄之下,一定要將文件放在public 目錄之下,否則是Vue無法定位文件位置導致a標簽默認跳轉!而且路徑應為: 根目錄-- 》doc--》合眾附加綜合交通工具意外傷害醫療保險(2013修訂)條款.doc
export default { data() { return { docUrl: '../doc/合眾附加綜合交通工具意外傷害醫療保險(2013修訂)條款.doc', //(可以理解為打包后的目錄,見下圖) downNm: '合眾附加綜合交通工具意外傷害醫療保險(2013修訂)條款.doc' } } }

3、VsCode配置Eslint的問題
使用Eslint的原因:為了保持代碼規范所以使用了Eslint,但處理錯誤也有點麻煩!所以想著使用VsCode擴展自動處理
問題:因為在寫pc后臺項目,所以使用了vue-admin-template,也是在作者文檔中看到的可以Eslint自動化,按照作者的來但一直無法配置成功,只能求助萬能的百度
解決方法:1、打開VsCode用戶設置 文件 => 首選項 => 設置 搜索eslint 可以點擊“在setting.json中編輯”或(右上角有個{}符號,點擊進入用戶配置!!為啥說這么細,因為我第一次找了半天!。。。)
2、添加Eslint配置,加在原有配置之后就行
{ "eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", { "language": "vue", "autoFix": true }, { "language": "html", "autoFix": true } ] }
解決!當然需要配置.eslintrc.js文件,但vue-cli腳手架里有,也可以使用開源項目的配置?。ú皇遣幌胫v,是不會啊)vue-admin-template的.eslintrc.js配置 https://github.com/PanJiaChen/vue-element-admin/blob/master/.eslintrc.js
4、正式發布的時候去除console.log(),這里只說vue-cli3的解決方案
安裝terser-webpack-plugin插件
yarn add terser-webpack-plugin -D
npm install terser-webpack-plugin -D
在vue.config.js中添加配置
module.export = { configureWebpack: (config)=>{ if(process.env.NODE_ENV === 'production') {
config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true } } }
使用yarn build打包時就自動去掉console.log了
5、事件穿透
將 @click=“fn” 改為 @click.stop=“fn” 即可
6、ios時間格式不顯示
ios無法將識別‘-’的時間格式 例如:new Date("2021-01-01") 可以先將‘-’轉為‘/’
var time = "2021-01-01"; console.log(time.replace(/-/g, "/"));
-- 未完待續(遇到問題編輯個問題) --

浙公網安備 33010602011771號