就是通过Vue开发时遇到的一个问题。
因为我不怎么喜欢起名字,我就把所有的处理函数都指向了同一个函数,然后都会传递一个case参数指做不同的事。
代码示例:
<div @click="_click( { case:1 , name:'XXX' } )"> 打印name </div>
<div @click="_click( { case:2 } )"> 打印被点击 </div>
methods:{
_click( obj ){
switch( obj.case ){
case 1:
console.log( obj.name );
break;
case 2:
console.log( "被点击" );
break;
}
}
}
大概就是这样,就是想问一下会不会有什么性能问题或者啥问题的?
普通的
Switch格式的
最大的问题是你的_click函数如果业务复杂的话会非常庞大,到后来会演变成:
1)出现BUG不好调试,难以快速定位问题;
2)接手的人几乎维护不了这个代码,会非常复杂;
3)可服用性相对还是稍差了点,另外一个业务中用到了几乎相同的代码,只有少部分不一样,那是准备拷贝一份过去么....
等等问题,应该还有很多,个人建议还是不要这么写....
最好还是封装为独立的函数,方便重复利用,也便于调试错误。
好想法!
case值必须是唯一的,实质上还是在起名字。用数字代替的话就不能重复数字了。
既然你这么爱写case 1,case 2,case 3
那你为什么不把函数名字叫做fun1,fun2,fun3呢
这样至少接手你代码的人可以把它们简单修改个名字就好,而不用把你每个case重新单独拆开来