vue 專案中遇到問題解決記錄
目錄
1、el-input標籤中根據輸入框的內容,實時計算某值
利用input屬性觸發某方法來進行計算 例如:<el-input v-on:input="matchDataClick" v-model="form.financingMax" el-input>
對應的Js方法如下圖
2、要在彈出框中使用el-dialog標籤觸發彈出框時,彈出框層次要進行設定
此種情況要在標籤中新增 :modal-append-to-body="false" 來進行層級的設定 例如:
<el-dialog width="35%" title="提示" :visible.sync="dialogFormVisible" :modal-append-to-body="false"> ... ... </el-dialog>
3、瀏覽器端快取資料 下面針對localStorage 和 sessionStorage做個對比分析
3.1 sessionStorage(臨時儲存) :為每一個數據源維持一個儲存區域,在瀏覽器開啟期間存在,包括頁面重新載入。
3.2 localStorage(長期儲存) :與 sessionStorage 一樣,但是瀏覽器關閉後,資料依然會一直儲存的本地相應資料夾中
3.3 sessionStorage和 localStorage的使用方法相同,如下
(1)儲存:
//物件
const info = { name: 'hou', age: 24, id: '001' };
//字串
const str="haha";
sessionStorage.setItem('hou', JSON.stringify(info));
sessionStorage.setItem('zheng', str);
(2)獲取
var data1 = JSON.parse(localStorage.getItem('hou'));
var data2 = localStorage.getItem('zheng');
(3)刪除
//刪除某個
localStorage.removeItem('hou');
//刪除所有
localStorage.clear();
(4)監聽
Storage 發生變化(增加、更新、刪除)時的 觸發,同一個頁面發生的改變不會觸發,只會監聽同一域名下其他頁面改變 Storage
window.addEventListener('storage', function (e) {
console.log('key', e.key); console.log('oldValue', e.oldValue);
console.log('newValue', e.newValue); console.log('url', e.url);
})
(5)在瀏覽器中檢視
4、給陣列的物件新增checked(Boolean值)的屬性
4.1 錯誤例項: 能賦值成功但是 複選框不能回顯
Array.forEach(element => {
element.checked = false
})
4.2 正確操作:利用set方法進行新增屬性 能賦值成功但是 且複選框能回顯
Array.forEach(element => {
this.$set(element,'checked',false)
})
5、js中物件無關聯複製
在js中複製物件,直接等於,如果操作元素據,複製的資料也發生改變,為了避免這種問題可用下面的程式碼複製,這樣obj和element就沒什麼關聯了。
var obj = JSON.parse(JSON.stringify(element))