1. 首页
  2. 技术知识

那些被 Vue3 废弃的特性(小白必看)

1、transition 类名变更

在Vue2中,transition 组件,内置的过渡类名分别有:

  • v-enter:作用于开始的一帧。
  • v-enter-active:作用与整个过程。
  • v-enter-to:作用于结束的一帧。
  • v-leave:离开过渡的开始状态,作用于开始的一帧。
  • v-leave-active:作用于离开的整个过程。
  • v-leave-to:作用于离开的最好一帧。

//使用案例:<template> <transition name=”box” >  <div class=”chart” v-if=”show”></div> </transition></template><style> .chart{  width:500px;  height:200px;  background:lightcoral;}.box-enter-active,.box-leave-active{ transition:all 2s;}.box-enter,.box-leave-to{  opacity:0}.box-enter-to,.box-leave{  opacity:1}     </style>在 Vue3 中 transition 类名变更有:

  • v-enter –> v-enter-from
  • v-leave –> v-leave-from

2、Event api 被移除

2.1、keyCode作为 v-on 的修饰符被移除

在vue2 中,使用 keyCode 指代某个键,如:

<input @keyup.13=”submit” type=”text” > 回车键盘弹起时执行 submit 事件。

而 vue3 不再支持,只能使用 alias的方式,将keyCode替换成它的别名。

<input @keyup.enter=”submit” type=”text” >
2.2、$on、$off 和 $once 被移除

$on 用于兄弟组件之间的数据传输。如:

//组件ApostValue(){ Event.$emit(‘aevent’,’传递的值’)}//组件Bmounted(){ Event.$on(‘aevent’,(val)=>{   //val就是传递过来的值 })}$off 是移除自定义事件的监听

postValue(){ this.$emit(‘aevent’,’传递的值’) this.$off(‘aevent’,()=>{  //移除监听器成功的回调,可加可不加 })}// 父组件的 @aevent 中的事件只会执行一次$once 监听一个自定义事件,但是只能触发一次,一旦触发后,监听器就会被移除。

<button @click.once=”handleClick”></button>在Vue3中,被认为不应该由 vue 提供,因此被移除了可以,可以使用其他的三方库实现。如mitt.js


3、根容器区别

innerHTML 与 outerHTML 的区别

innerHTML 从开始到结束的全部内容,不包含 html 标签 ,而 outerHTML 包含标签。

vue2 与 vue3 根容器区别

vue2 中应用程序根容器的 outerHTML 会被根组件的模板替换,或编译为模板。

vue3 中使用根容器的 innerHTML取代,作为模板。

可以给 <div id=”APP”></div> 添加一个类名,查看元素就可以看出来。


4、filter 过滤器被移除

在Vue2中,过滤器分为两种:局部过滤器 和 全局过滤器。

全局过滤器:

Vue.filter( ‘dFor’, msg => { return msg.replace(/AA/g,’xxxxxx’)})局部过滤器:

export default { filters:{  dataFormat(s){   return s+’aaa’  } }}全局和局部过滤器相同名时,就近原则,使用局部过滤器,一个表达式可使用多个过滤器,使用”|”隔开,按顺序执行。

但是在vue3中,将 filter 移除后,推荐使用计算属性来展示,还可以全局注册过滤计算属性。


5、watch 监听器改变

组件的 watch 选项和实例方法 $watch 不再支持点分割字符串路径,可以使用计算函数作为 $watch 参数实现。

this.$watch(()=>{        },()=>{})

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/126881.html

联系我们