小技巧总结

110 阅读1分钟

弹层中包含弹层时,message提示显示在弹层下方

要把提示显示在最上层,解决方案: 直接引入Message

Message({
  type: 'error',
  message: 'xxxx'
})

dialog的原理

dialog的原理是v-show,只有第一次在主页面加载时,会一同加载dialog 触发生命周期。想要多次触发生命周期,改用v-if,直接在dialog上添加v-if

computed中访问this,以及同时监听两个变量

将两个变量使用计算属性形成一个对象,watch监听这个对象

// self:this
computed: {
    tempName: (self) => {
      let { a } = self.queryParams
      let { b } = self
      return { a, b }
    }
},

tempName (val) {
  if (val.a && val.b) {
    this.queryParams.c = val.a.slice(0, 1) + `(${val.b})`
  }
},

重置表单,重置为默认值,而不是设置为空值

this.$refs[searchForm].resetFields() 需要格外注意的是,需要清除的from-item要写 prop

对于数组

Vue 不能检测以下数组的变动:

  1. 当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue;
  2. 当你修改数组的长度时,例如:vm.items.length = newLength;

解决方法:

  1. vm.$set(vm.items, indexOfItem, newValue)
  2. vm.items.splice(newLength)

同时重写了 Array 的多个方法:( 能改变原有数组的API基本都重写了 )

  • push
  • pop
  • shift
  • unshift
  • splice
  • sort
  • reverse

方便用户实现数组的响应式