首页 > 其他分享 >Vue 中 created 和 mounted 的区别

Vue 中 created 和 mounted 的区别

时间:2022-10-20 10:01:00浏览次数:67  
标签:Vue console log DOM created mounted My

Vue 中 created 和 mounted 的区别_created

大多数人在谈论生命周期钩子时会感到困惑的一件事是 ​​created​​​ 和 ​​mounted​​之间的区别。有着相似的名称,觉得应该做同样的事情,但还是有一些细微的差别。

首先,​​created()​​ 和 ​​mounted()​​ 都可以访问原型上的 ​​data​​ 和 ​​props​​ 。例如,下面的代码中,这两个钩子将在控制台中打印出 ​​My Data​​ 和 ​​My Props​​ :

<template>
<div></div>
</template>
<script>
export default {
data() {
return {
dataMsg: "My data",
};
},
props: {
propMsg: {
type: String,
default: "My Props",
},
},
created() {
console.log(this.dataMsg);
console.log(this.propMsg);
},
mounted() {
console.log(this.dataMsg);
console.log(this.propMsg);
},
};
</script>

​created()​​ 和 ​​mounted()​​ 之间的根本区别在于访问DOM,在上面的示例中,如果尝试引用 ​​this.$el​​,在 ​​created()​​ 中返回 ​​null​​,在 ​​mounted()​​ 中返回 DOM 元素:

export default {
created() {
// 打印 null
console.log(this.$el);
},
mounted() {
// 打印 DOM 元素
console.log(this.$el);
},
};

因此,任何 DOM 操作,甚至使用诸如 ​​querySelector​​ 之类的方法获取 DOM 元素结构将无法在 ​​created()​​ 中使用。因此根据这点区别 ​​created()​​ 非常适合调用 API,而 ​​mounted()​​ 非常适合在 DOM 元素完全加载后执行任何操作。

在 Vue3 组合式API(Composition API)中,​​created()​​ 和 ​​beforeCreated()​​ 将不再存在,可以取而代之的是 ​​setup()​​,因此,在 ​​setup()​​ 中 DOM 仍然不可用,而 ​​mounted()​​ 保持不变。

标签:Vue,console,log,DOM,created,mounted,My
From: https://blog.51cto.com/devpoint/5777707

相关文章

  • Vue面试题37:如何处理Vue项目中的错误?(总结自B站up主‘前端杨村长’视频,仅供自用学习)
    分析这是一个综合应用题目,在项目中我们常常需要将App的异常上报,此时错误处理就很重要了;这里要区分错误的类型,进而针对性做收集。然后将收集到的错误信息上报服务器;......
  • vue3+vite的项目创建
    1、创建项目可以直接创建vite项目,选择vue即可,我这里用的yarn创建的(yarn在下载插件时,据说比npm稳定和快)yarncreatevite2、命名项目名可以自己输入对应的项目名3、......
  • Vue前端的 Excel 导入和导出功能
    Excel解析为JSON基本内容组件效果和结构组件内容是很简单的结构和视图,直接查看如下的页面效果和代码即可:  <template><inputtype="file"ref="exc......
  • Vue生命周期
    Vue生命周期生命周期就是我们从开始创建vue实例到销毁的一个过程,这一过程就叫做生命周期。方便我们在vue的各个阶段对其属性进行操作生命周期示例-----newVue实例化Vu......
  • vue源码解析
           入口   在runtime经过再次扩展  在core下的index再次被扩展   最后是core的instance里是真正的vue构造函数继续扩展vue实......
  • Vue 核心技术
    1.1Vue简介1.1.1官网英文官网中文官网1.1.2介绍与描述动态构建用户界面的渐进式JavaScript框架作者:尤雨溪1.1.3Vue的特点遵循MVVM模式编码简洁,体......
  • vue computed写法与传参
    //vue2computed:{fullName(){returnthis.firstName+this.lastName;}}//传参computed:{fullName(){return(params)=>{}......
  • Vue学习笔记之vue.js 两个等号 == 和三个等号===的区别
    /**==用于比较两者是否相等,忽略数据类型===用于更严谨的比较,值和值的数据类型都需要同时比较*/<!DOCTYPEhtml><htmllang="en"><head><metacharset="......
  • Vue组件是怎样挂载的
    我们先来关注一下$mount是实现什么功能的吧:我们打开源码路径core/instance/init.js:exportfunctioninitMixin(Vue:Class<Component>){......initLifec......
  • Vue模板是怎样编译的
    这一章我们开始讲模板解析编译:总结来说就是通过compile函数把tamplate解析成renderFunction形式的字符串compiler/index.jsimport{parse}from'./parser/index'imp......