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)
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值