created和mounted在什么情况下使用

created钩子,此时data与methods已经初始化,但是还没有编译模板。

mounted钩子,此时模板已经编译完成,并且挂载到了页面指定的容器中。

生命周期是否获取DOM节点是否获取data是否获取methods
created                   否              是                  是
mounted                   是              是                  是

 

 

使用场景

1.created钩子中可以初始化数据或者发送ajax请求获取要渲染页面的数据,也是使用较多的生命周期钩子

data() {
    return {
      name:'',
      form: {},
      articleId: ''
    }
},
async created() {
    // 初始化name属性
    this.name = 'tom'
    // 获取其他路由传过来的参数
    this.articleId = this.$route.params.articleId
    if (this.articleId) {
      // articleId为参数的ajax请求
      const res = await productArticle(this.articleId)
      this.form = res.data.detailArticle
    }
 }

vue3中Composition API写法需要写在onMounted钩子中

import { onMounted, ref, reactive } from 'vue';
import { useRoute } from 'vue-router';

const route = useRoute()

const topicId = ref('')

const topicDetail = reactive({
    data: {},
    recommendList: []
})

const getDetailaction = async () => {
    const res = await detailaction({ id: topicId.value })
    topicDetail.data = res.data
    topicDetail.recommendList = res.recommendList
}

onMounted(() => {
    topicId.value = route.query.id
    getDetailaction()
})

由于setup是围绕beforeCreate和created生命周期钩子运行的,所以不需要显式地定义它们。换句话说,这些钩子中编写的代码都应该直接在setup函数中编写。

 

2.mounted钩子中可以对dom节点进行操作,也可以插件或组件时进行操作,比如ECharts

mounted() {
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('bar-main'))

    var options = {
       ...
    }
    
    myChart.setOption(options)
}

Vuecreated和mountedVue生命周期钩子函数,用于在Vue实例的不同阶段执行特定的操作。 created()函数在Vue实例被创建之后立即执行。在这个阶段,Vue实例的数据观测和事件配置已完成,但尚未挂载到DOM上。通常在这个阶段执行一些数据初始化、事件监听、异步请求等逻辑,但不涉及DOM操作。\[3\] mounted()函数在Vue实例被成功创建和挂载到DOM后执行。在这个阶段,Vue实例已经和DOM元素建立了关联,可以进行DOM操作和访问DOM元素。通常在这个阶段执行一些需要操作DOM的逻辑,比如初始化第三方插件、绑定事件监听器等。\[1\] 需要注意的是,created()和mounted()只有在Vue实例被成功创建和挂载后才会执行。如果在创建或挂载过程中发生错误或中止,这两个函数也不会执行。在使用这两个函数时,要避免过多的依赖全局状态或其他模块,以保证逻辑的灵活性和可重用性。\[2\] #### 引用[.reference_title] - *1* [vuecreated和mounted含义与用法](https://blog.csdn.net/xu2034029667/article/details/117187688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [created()和mounted()的区别及其用法](https://blog.csdn.net/qq_52675745/article/details/130964906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值