
解决办法是:将代码中的
:class="{
'step-bar': statuscode == projectattributesstatus,
'next': statuscode > projectattributesstatus
}"
部分,先判断下projectattributes是否存在,代码如下:
:class="{
'step-bar': projectattributes && statuscode == projectattributesstatus,
'next': projectattributes && statuscode > projectattributesstatus
}"
这样如果projectattributes不存在则直接返回false,由于&&运算符的截断,所以不会运行含有projectattributesstatus的代码,也就不会触发错误。
使用id来识别唯一的元素是合理的,但是用class更好,因为class可以用来指定一组元素,而id只能指定一个元素。在Vue中,使用class更方便,可以使用绑定的class来管理元素的样式,而使用id则没有这种灵活性。因此,在Vue中,最好使用class而不用id。
绑定样式有三种方式:
首先我们先定义一个样式:
active{
background-color: orangered;
color: white;
}
1第一种方式(推荐):class绑定样式
:class绑定样式时,对象的属性名是类选择器名称,属性值返回true,表示添加该选择器
2第二种方式,三元运算符法
3第三种方法 :style绑定样式
:style绑定样式时,对象的属性名称是css样式的名称(要使用小驼峰命名法),属性值是具体的样式值
相比于普通函数计算来说,计算属性的优势是:有缓存,当页面数据发生变化时,所有的方法都要重新执行,当计算属性用到的数据发生变化时,计算属性才会重新执行。
例如以下案例中的普通方法methods 和 计算属性computed
1 侦听器的作用,其实就是当页面数据(属性值)发生改变时,重新发送ajax请求获取新的数据
一般他有两个参数: nval (最新值)oval(旧值)
2侦听对象时,需要开启深度监视
格式如下:
student:{
//开启深度监视
deep:true,
//页面加载完成时,先运行一次(注意:这种情况下,旧值是undefined)
immediate:true,
//定义监视的函数
handler(nval,oval){
// 开启深度监视后,旧值已经没有意义,因为对象是引用类型,
// 对象的属性值已经改了,就没有旧的属性值。
consolelog(nval,oval);
}
}
注意点:1通过管道符| 调用过滤器,其实就是调用那个方法,将值传进去,再返回新的值
2过滤器可以链式调用,就是之前已经过滤完成的结果,继续传给下一个过滤器,注意顺序
3toFixed(数字) 函数,限定小数后几位的方法
另外:还可以使用外部调用过滤器的方法
在外部写一个filter过滤器的js文件,然后引用,如下
先在data里面定义
`data () {
return {
collapse:false
}
}
`
点击展开菜单添加is-active,同时将collapse变成true,然后在你想增加类名的dom上加上:class="{'classA':collapse}",类名classA在css里面添加样式
以上就是关于vue实现点击后动态添加class及删除同级class全部的内容,包括:vue实现点击后动态添加class及删除同级class、VUE3中Class 与 Style 绑定、vue2 怎么把获取到的图片名赋值到文本框里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)