Vue进阶(三十六):created() 详解「建议收藏」

Vue进阶(三十六):created() 详解「建议收藏」这次给大家带来vue.js中created方法的使用详解,使用vue.js中created方法的注意事项有哪些,下面就是实战案例,一起来看一下。这是它的一个生命周期钩子函数,就是一个vue实例被生成后调用这个函数。一个vue实例被生成后还要绑定到某个html元素上,之后还要进行编译,然后再插入到document中。每一个阶段都会有一个钩子函数,方便开发者在不同阶段处理不同逻辑。一般可以在creat…

大家好,又见面了,我是你们的朋友全栈君。


一、前言

vue.jscreated方法是一个生命周期钩子函数,一个vue实例被生成后会调用这个函数。一个vue实例被生成后还要绑定到某个html元素上,之后还要进行编译,然后再插入到document中。每一个阶段都会有一个钩子函数,方便开发者在不同阶段处理不同逻辑。

一般可以在created函数中调用ajax获取页面初始化所需的数据。

二、实例生命周期

每个 Vue 实例在被创建之前都要经过一系列的初始化过程。例如,实例需要配置数据观测(data observer)、编译模版、挂载实例到 DOM ,然后在数据变化时更新 DOM 。在这个过程中,实例也会调用一些生命周期钩子 ,这就给我们提供了执行自定义逻辑的机会。例如,created 钩子函数在实例被创建之后被调用:

var vm = new Vue({ 
   
	data: { 
   
		a: 1
	},
created: function () { 
   
	// `this` 指向 vm 实例
	console.log('a is:', this.a)
}
})

也有一些其它的钩子,在实例生命周期的不同阶段调用,如 mountedupdateddestroyed 。钩子函数中的 this 指向调用它的 Vue 实例。一些童鞋可能会问 Vue.js 是否有“控制器”的概念?答案是,没有。组件的自定义逻辑可以分布在这些钩子中。

2.1 钩子函数生命周期

在这里插入图片描述

三、Vue 生命周期 mounted 和 created 的区别

3.1 什么是生命周期?

通俗来说,生命周期就是Vue实例或者组件从创建到销毁所经历的一系列过程。虽然不太严谨,但是也基本上可以理解。

3.2 created 和 mounted 区别

官方图解如下:
在这里插入图片描述

从上图可看到两个节点:

  • created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。

  • mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对htmldom节点进行一些操作。

通常created使用的次数多,而mounted是在一些插件或组件的使用中进行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart进行一些初始化配置,一定要等这个html渲染完后才可以进行,那么mounted就是不二之选。下面看一个例子(用组件)。

3.2 示例

Vue.component("demo1",{ 
    
  data:function(){ 
    
   return { 
    
	    name:"", 
	    age:"", 
	    city:""
   } 
  }, 
  template:"<ul><li id='name'>{ 
   {name}}</li><li>{ 
   {age}}</li><li>{ 
   {city}}</li></ul>", 
  created:function(){ 
    
	   this.name="唐浩益"
	   this.age = "12"
	   this.city ="杭州"
	   var x = document.getElementById("name")//第一个命令台错误 
	   console.log(x.innerHTML); 
  }, 
  mounted:function(){ 
    
   var x = document.getElementById("name")/</span>/第二个命令台输出的结果<span style="font-size: 14px;"> 
   console.log(x.innerHTML); 
  } 
 }); 
 var vm = new Vue({ 
    
  el:"#example1"
 })

可以看到输出如下:
在这里插入图片描述
可以看到都在created赋予初始值的情况下成功渲染出来了。

但是同时看console台如下:
在这里插入图片描述
可以看到第一个报了错,实际是因为找不到id,getElementById(ID) 并没有找到元素,原因如下:

created的时候,视图中的html并没有渲染出来,所以此时如果直接去操作htmldom节点,一定找不到相关的元素。

而在mounted中,由于此时html已经渲染出来了,所以可以直接操作dom节点,故输出了结果。

四、拓展阅读

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152870.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux怎么复制文件到其他文件夹

    Linux怎么复制文件到其他文件夹1.前言本文主要讲解linux怎么复制文件到其他文件夹。在Linux和Unix系统上工作时,复制文件和目录是您每天要执行的最常见任务之一。cp是一个命令行实用程序,用于复制Unix和Linux系统上的文件和目录。在本文中,我们将解释如何使用cp命令。linux怎么复制文件到其他文件夹2.如何使用cp命令cp命令的使用语法:cp[OPTIONS]源…目标源可以有一个或多个文件或目录作为参数,目标可以有一个文件或文件夹作为参数。当源和目标参数都是文件时,cp命令将第一

    2025年6月10日
    4
  • EclipseSVN更新和提交

    EclipseSVN更新和提交EclipseSVN更新和提交阅读钱请先阅读前一篇文章:eclipse安装与SVN插件的安装以及分享和检出更多资源可关注好男人的微信公众号:“菜鸟资源分享”1、上部分结束后,此时我们在Tom_work中修改项目代码,完后提交到服务器端,在重新打开一个eclipse,工作空间选择Jeery_work,完后再Jeery_work点击更新(在点击更新前先将未修改的项目文件导入到eclipse中,…

    2022年10月10日
    3
  • vue 创建新项目

    vue 创建新项目1 vue 依赖于 npm 和 node 有因为 npm 依赖于 node 所以在新建项目前先安装好 node 也可以安装 nvm 后续方便切换 node 版本 打开 cmd 窗口 输出 node v 看看有无安装成功 有显示指定版本说明 node 安装成功 2 安装脚手架 vue cli 输入命令 npminstall g vue cli 接着用命令 vueversion 查看是否安装成功 3 新建项目 命令 vuecreate 项目名 4 创建成功 按照提示进入 vscode 切换到指定文件夹 执行 npmruns

    2025年7月3日
    3
  • 基于阿里DDNS的ipv6 for windows版软件「建议收藏」

    基于阿里DDNS的ipv6 for windows版软件「建议收藏」基于阿里DDNS的ipv6forwindows版软件会搜到这篇帖子的同学,应该和我一样,满世界为自己的虚拟主机找寻ipv6的动态ddns程序吧?下面我先说说我的折腾故事:因为买了群晖,然后发现需要公网ip,但公网ip现在电信要钱了,开口100元一个月,挺黑的。没办法尝试了各种内网穿透,这类帖子网上很多,就不细说了,总之是各种折腾,各种不爽,最终选择了零遁伴侣做内网穿透还算稳定,速度也不错。…

    2022年6月13日
    52
  • java和mysql实现学生成绩管理系统(学生信息管理系统课程设计)

    Java+MySQL实现学生管理系统实现一个学生管理系统,方便老师对学生信息进行统计管理用户登录功能学生管理功能完善界面交互数据持久可靠设计思路使用Java作为开发语言,MySQL作为数据库,JavaSwing做图形界面;分层解耦,分为entity(实体层,映射数据库具体表)、dal(数据库访问,对数据库工具类封装)、dao(持久层,同数据库交互)、gui…

    2022年4月12日
    504
  • eclipse 自动补全提示会卡死[通俗易懂]

    eclipse 自动补全提示会卡死[通俗易懂]这是Eclipse3.6版本的特有问题,想彻底解决此问题的话,还是建议换为3.5/3.4;在保持版本不变的前提下,可以按如下方法优化下:解决办法:1.找到你的JDK安装目录下的src.zip文件;2.打开eclipse:Window菜单->Preference->Java->InstalledJREs;3.在列表中选择你eclipse正在使用的JRE,然后Edit;

    2022年10月15日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号