代码拉取完成,页面将自动刷新
Gitee: vue2-to-composition-api
Github: vue2-to-composition-api
Git地址
转换后需为 Template
中的 Data
数据需加上 .data
前缀,其原因是许多开发者在Options API语法中做了改变引用类型数据地址的行为(如下),Data
将会被转换为一个完整的对象以兼容此类操作,此方式额外产生的迭代成本更小
Options API:
<template>
<div>{{ userInfo }}</div>
</template>
export default {
name: 'Sample',
data() {
return {
userInfo: {}
}
},
created() {
this.userInfo = { name: 'Casey Adams', age: 80 }
}
}
Composition API:
<template>
<div>{{ data.userInfo }}</div>
</template>
import { reactive } from 'vue'
const data = reactive({
userInfo: {}
})
data.userInfo = { name: 'Casey Adams', age: 80 }
Filter
已经被废弃,它将会被转换为外部的 Function
内容,需要在 Template
中改变 Filter
的调用方式
Options API
<template>
<div>{{ married | toMarried }}</div>
</template>
export default {
name: 'Sample',
filters: {
toMarried(value) {
return value ? 'Yes' : 'No'
}
}
}
Composition API:
<template>
<div>{{ toMarried(data.married) }}</div>
</template>
function toMarried(value) {
return value ? 'Yes' : 'No'
}
如若不想在 Vue2.7
项目中更新 Router4, Vuex4
,可以从 Vue
实例中获取 Router, Route, Store
import { getCurrentInstance } from 'vue'
const $vm = getCurrentInstance()
const router = $vm.proxy.$router
const route = $vm.proxy.$route
const store = $vm.proxy.$store
动态变量或者拼接的内容无法被解析或解析错误
export default {
methods: {
onSubmit(propName) {
this[propName] = '123'
this.$emit(propName + '-change')
}
}
}
Package: vue2-to-composition-api
E-mail: diquick@qq.com
Author: wd3322
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型