在Vue 3中,`mounted`是一个生命周期钩子,它在组件被挂载到DOM中后执行。这是一个非常适合执行依赖于DOM的初始化工作的阶段,比如获取元素的尺寸或与第三方DOM库进行交互等。
```javascript
import { ref, onMounted } from 'vue';
export default {
setup() {
const count = ref(0);
onMounted(() => {
console.log('Component is now mounted and ready');
// 访问真实的DOM元素
const el = document.querySelector('my-element');
console.log(el);
// 启动一个轮询定时器
const interval = setInterval(() => {
count.value++;
}, 1000);
// 清理函数,在组件卸载前清除定时器
return () => {
clearInterval(interval);
};
});
}
};
```
在这个例子中,我们首先导入了`ref`和`onMounted`。然后在`setup`函数中,我们定义了一个响应式变量`count`。在`onMounted`钩子中,我们可以执行需要在组件挂载完成后进行的操作,比如访问真实的DOM元素或启动定时器。最后,我们返回一个清理函数,以便在组件卸载前清除定时器。
`mounted`钩子触发时机是在Vue实例挂载到DOM上之后,这意味着模板已被编译并插入到页面中,真实DOM可供访问。在这个阶段,你可以执行依赖于DOM元素的操作,如请求接口并显示数据、初始化插件等。需要注意的是,`mounted`在初次渲染时会被调用,而当数据变更时,它不会再次触发。
如果你使用的是Vue 2,`mounted`钩子的用法类似,但是你需要在组件的选项中定义它,而不是在`setup`函数中。以下是Vue 2中`mounted`钩子的一个例子:
```javascript
export default {
data() {
return {
message: "Hello World"
};
},
mounted() {
console.log("组件已经挂载到页面");
// 在这里执行依赖于DOM的操作
}
};
```
在这个Vue 2的例子中,`mounted`钩子被用于输出一条日志来确认组件已被成功挂载。同时,也可以在`mounted`钩子中使用AJAX请求数据或执行DOM操作等功能。