vue使用中的问题总结

193 阅读1分钟

###一、v-if来切换报错问题 v-if 为同一类型组件(或同一模板的dom树)来做显示和隐藏时,容易出问题

######方法一,给每个v-if添加不同的key

<template v-if="type=== 'username'" key="1">  
  <label>用户名</label>  
  <input placeholder="输入用户名">  
</template>  
<template v-else  key="2">  
  <label>邮箱</label>  
  <input placeholder="输入邮箱">  
</template>

######方法二,使用v-show来替换

<template v-show="type=== 'username'">  
  <label>用户名</label>  
  <input placeholder="输入用户名">  
</template>  
<template v-show="type=='good">  
  <label>邮箱</label>  
  <input placeholder="输入邮箱">  
</template>

###当给对象添加属性,但是视图上无变化时 ######使用this.set进行修正官方解释:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为Vue无法探测普通的新增属性(比如 this.myObject.newProperty=hi),你会发现vue官网是vue.setvue.set的用法,给你们插入连接,怕你们找不到😁,我们现在讲的这个this.set进行修正 官方解释:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = 'hi'),你会发现vue官网是vue.set,vue.set的用法,给你们插入连接,怕你们找不到😁,我们现在讲的这个this.set()和它有什么关系呢?咱先说this.$set(),因为他们俩的区别就涉及原理问题啦。

🌹调用方法:this.$set( target, key, value )

🌹 target:要更改的数据源(可以是对象或者数组)

🌹 key:要更改的具体数据

🌹 value :重新赋的值

this.menulist[index].sonList.map((item)=>{
	this.$set(item, 'checked', false); ---用vue的set属性赋值
})