1. 程式人生 > >記項目中易出現的bug點

記項目中易出現的bug點

form earch let 參數傳遞 操作 鉤子 一次 初始化 sta

1. 彈框組件,初始化數據的方法寫在created 中

bug 點:created 鉤子函數只在頁面第一次加載時執行,第二次加載則不會執行,初始化數據無法更新。

示例:頁面不刷新的情況下,彈框組件第二次打開時,detail 是不會變化的

 created () {
    this.getDetail()
  },
  methods: {
    getDetail () {
      this.$http(‘post‘, `/api/${this.id}`)
        .then((res) => {
          if (res.statusCode === 200) {
            let result = res.data
            this.alarmDescription = Object.assign(this.alarmDescription, result.alarmDescription)
            this.alarmContentType = result.alarmContentType
          }
        })
        .catch((e) => {
          console.log(e)
        })
    }, 

解決辦法: watch 一下id 的變化,同時要在關閉彈框的回調事件中改變一下id, 這樣避免連續打開同一條記錄(id不變)時,也刷新數據。

  watch: {
    id: function (val) {
      if (this.id) {
        this.getDetail()
      }
    }
  },  

2. form 表單,要有清空操作

3. try catch 無法抓取異步方法中的錯誤

4. 雙向綁定復雜對象,當參數傳遞前要 JSON.parse(JSON.stringify(this.searchForm)),避免參數對象中的數據隨頁面發生變化。

記項目中易出現的bug點