vue在哪个生命周期可以获取和操作DOM
2021/9/24 6:12:42
本文主要是介绍vue在哪个生命周期可以获取和操作DOM,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
vue从mounted钩子函数开始可以获取和操作dom,此前操作DOM浏览器会报错。
vue生命周期Vue 实例
测试代码如下。在每个钩子函数中添加相应的DOM,测试能否获取及修改DOM。
<template> <div id="body"> <input v-model="test" /> </div> </template> <script> export default { data() { return { test: "", }; }, beforeCreate() { let body = document.getElementById("body"); if (body !== null) { console.log("beforeCreate 可以获取 DOM"); } else { console.log("beforeCreate 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "beforeCreate"; body.appendChild(div); }, created() { let body = document.getElementById("body"); if (body !== null) { console.log("created 可以获取 DOM"); } else { console.log("created 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "created"; body.appendChild(div); }, beforeMount() { let body = document.getElementById("body"); if (body !== null) { console.log("beforeMount 可以获取 DOM"); } else { console.log("beforeMount 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "beforeMount"; body.appendChild(div); }, mounted() { let body = document.getElementById("body"); if (body !== null) { console.log("mounted 可以获取 DOM"); } else { console.log("mounted 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "mounted"; body.appendChild(div); }, beforeUpdate() { let body = document.getElementById("body"); if (body !== null) { console.log("beforeUpdate 可以获取 DOM"); } else { console.log("beforeUpdate 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "beforeUpdate"; body.appendChild(div); }, updated() { let body = document.getElementById("body"); if (body !== null) { console.log("updated 可以获取 DOM"); } else { console.log("updated 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "updated"; body.appendChild(div); }, beforeDestroy() { let body = document.getElementById("body"); if (body !== null) { console.log("beforeDestroy 可以获取 DOM"); } else { console.log("beforeDestroy 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "beforeDestroy"; body.appendChild(div); }, destroyed() { let body = document.getElementById("body"); if (body !== null) { console.log("destroyed 可以获取 DOM"); } else { console.log("destroyed 不可以获取 DOM"); } let div = document.createElement("div"); div.innerHTML = "destroyed"; body.appendChild(div); }, }; </script>
运行程序,打开界面
可以看到mounted钩子函数中,JS可以正常添加元素,它之前的钩子函数都会报错。修改文本框内容,触发更新钩子函数,同样可以修改dom。
在代码中添加methods作用域,其中不添加任何方法,再保存使代码重新编译,这样可以在不改变之前逻辑的情况下触发destory。
可以看到destroyed时仍可以操作DOM。
这篇关于vue在哪个生命周期可以获取和操作DOM的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程