Vue3移除的API
Posted 月岛蘑菇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue3移除的API相关的知识,希望对你有一定的参考价值。
Vue3移除的API
按键修饰符
- 不再支持keycode作为v-on的修饰符
- 不再支持config.keyCode
<!-- 2.x -->
<!-- 键码版本 -->
<input v-on:keyup.13="submit" />
<!-- 别名版本 -->
<input v-on:keyup.enter="submit" />
<!-- 通过全局 config.keyCodes 选项 -->
<script>
Vue.config.keyCodes = {
f1: 112
}
</script>
<input v-on:keyup.112="showHelpText" />
<input v-on:keyup.f1="showHelpText" />
<!-- 3.x -->
<!-- 新规范中keyCode不再被推荐,推荐使用按键名 -->
<!-- https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode -->
<input v-on:keyup.delete="confirmDelete" />
$on,$off 和 $once 实例方法被移除
在vue2.x中,可以通过指令方式添加处理函数($on, $once, $off), 这可以创建event hub,用来创建在整个应用程序中可用的全局事件监听器
// vue2.x
// eventHub.js
const eventHub = new Vue()
export default eventHub
// ChildComponent.vue
import eventHub from \'./eventHub\'
export default {
mounted() {
eventHub.$on(\'custom-event\', () => {
console.log(\'Custom event triggered!\')
})
},
beforeDestory() {
eventHub.$off(\'custom-event\')
}
}
// ParentComponent.vue
import eventHub from \'./eventHub\'
export default {
methods: {
callGlobalCustomEvent() {
eventHub.$emit(\'custom-event\')
// 当 ChildComponent 被挂载,控制台中将显示一条消息
}
}
}
在Vue3中,从实例中完全移除了 $on、$off 和 $once 方法。$emit 仍然包含于现有的 API 中,因为它用于触发由父组件声明式添加的事件处理函数
删除过滤器
<!-- 2.x中,开发者可以使用过滤器来处理通用文本格式 -->
<template>
<h1>Bank Account Balance</h1>
<p>{{ accountBalance | currencyUSD }}</p>
</template>
<script>
export default {
props: {
accountBalance: {
type: Number,
required: true
}
},
filter: {
currentUSD(value) {
return \'$\' + value
}
}
}
</script>
在 3.x 中,过滤器已删除,不再支持。可以使用计算属性或调用方法替换他们
<!-- 3.x -->
<template>
<h1>Bank Account Balance</h1>
<p>{{ accountInUSD }}</p>
</template>
<script>
export default {
props: {
accountBalance: {
type: Number,
required: true
}
},
computed: {
accountInUSD() {
return \'$\' + this.accountBalance
}
}
}
</script>
内联模板Attribute
移除内联特性
<!-- 2.x -->
<!-- inline-template属性可以将其内部内容用作模板,而不是将其作为分发内容 -->
<my-component inline-template>
<div>
<p>它们被编译为组件自己的模板</p>
<p>不是父级所包含的内容。</p>
</div>
</my-component>
vue3中已移除,不再支持
$children 已移除
$children 实例 property 已从 Vue 3.0 中移除,不再支持。
<template>
<div>
![](./assets/logo.png)
<my-button>Change logo</my-button>
</div>
</template>
<script>
import MyButton from \'./MyButton\'
export default {
components: {
MyButton
},
mounted() {
console.log(this.$children) // [VueComponent]
}
}
</script>
在vue3中,如果要访问子组件实例,建议使用$refs
$destory实例方法已删除
用户不应再手动管理单个 Vue 组件的生命周期。
以上是关于Vue3移除的API的主要内容,如果未能解决你的问题,请参考以下文章