我正在将一个组件库导入到我的 Vue 3 项目中。
组件的每个实例都使用完全相同的样式。为了避免手动更改每个实例的道具,我使用了全局属性:
app.config.globalProperties.$tooltipStyles = { width: '300px', minWidth: 'unset' };
为此,我必须将其导入app每个文件,并将return其导入setup(). 我还必须将其设置为每个实例:
:styles="app.$tooltipStyles"
有没有办法全局设置它,以便每次我使用组件时,它默认具有这些样式?
编辑
为了补充已接受的答案,我创建了一个单独的文件,该文件导出单个反应对象:
import { reactive } from 'vue';
const global = reactive({
$tooltipStyles: { width: '300px', minWidth: 'unset' },
$tooltipPosition: 'right',
});
export default global;
这样我就可以即时更新任何属性。
例如,当屏幕低于某个尺寸时,我可以将位置更改为'top':
window.addEventListener('resize', () => {
if (window.matchMedia('(max-width: 992px)').matches) {
global.$tooltipPosition = 'top';
} else {
global.$tooltipPosition = 'right';
}
})
它会相应地更新。