uni-app vue3 封装 mixins options失败
uni-app vue3 封装 mixins options失败
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | Windows10 | HBuilderX |
| HBuilderX | 3.2.14 | |
| 第三方开发者工具 | RC 1.05.2109131 | |
| 基础库 | 2.21.0 |
操作步骤:
- 自定义组件引用 mixins
预期结果:
- mixins 正常引用
实际结果:
- mixins 中options 引入失败
bug描述:
vue3 封装 mixins
```javascript
export default {
// 将自定义节点设置成虚拟的,更加接近Vue组件的表现,能更好的使用flex属性
options: {
virtualHost: true,
}
}
```
```
更多关于uni-app vue3 封装 mixins options失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app vue3 封装 mixins options失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app Vue3 中,options 配置项在 mixins 中确实无法正常工作。这是因为 Vue3 的 Composition API 设计改变了 mixins 的合并策略,options 这类组件选项在 mixins 中不会被正确合并。
解决方案:
-
直接在每个组件中定义
options: 在每个需要virtualHost: true的组件中单独设置:export default { options: { virtualHost: true }, // ...其他配置 } -
使用组合式函数替代 mixins(推荐): 创建
useVirtualHost.js:import { getCurrentInstance } from 'vue' export function useVirtualHost() { const instance = getCurrentInstance() if (instance) { instance.type.options = { ...instance.type.options, virtualHost: true } } }在组件中使用:
import { useVirtualHost } from './useVirtualHost' export default { setup() { useVirtualHost() // ...其他逻辑 } } -
使用全局 mixin(谨慎使用):
// main.js import { createApp } from 'vue' const app = createApp(App) app.mixin({ options: { virtualHost: true } })

