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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring boot redis 缓存_redis本地缓存

    spring boot redis 缓存_redis本地缓存SpringBoot集成Redis缓存查询操作是应用中最常见的操作,如果每次查询都从MySQL中查询则会影响效率,通常需要引入缓存来实现查询性能的优化。缓存可以选择本地缓存,远程缓存或本地缓存结合远程缓存。本地缓存可以使用Guava或Caffeine提供的解决方案,而远程缓存则可以选择Redis这样的内存数据库。本文记录一下SpringBoot集成Redis做缓存的相关配置。1引入依赖引入相应Starter。<dependency><gr

    2022年9月17日
    5
  • FTP服务器搭建基础工具之二:FlashFXP V5.0.0.3720使用教程

    FTP服务器搭建基础工具之二:FlashFXP V5.0.0.3720使用教程FlashFXP 使用其实就是为了实现文件的上传和下载 它要结合

    2025年9月3日
    2
  • Tomcat如何配置环境变量

    Tomcat如何配置环境变量分步阅读下载安装tomcat,如何配置环境变量?配置过程中是否和作者一样经常出现错误?请仔细读文及注意事项。工具/原料1,JDK:版本为jdk-8u121-windows-x64.exe下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html2,tomcat:版本为apache-tomcat-8.0.36-windows-x64.zip下载地址http://tomcat.apache.org/3,wn10,

    2022年6月3日
    29
  • java中Scanner类nextLine()和next()的区别和使用方法

    java中Scanner类nextLine()和next()的区别和使用方法在实现字符窗口的输入时,扫描器Scanner非常实用,操作起来也比较简单。在今天编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但是这两种方法究竟有什么区别呢?我查了一些资料总结了一下,希望对大家有所帮助。           在实现字符窗口的输入时,扫描器Scanner非常实用,操作起来也比较简单。

    2022年6月12日
    33
  • 单链表//elemtype为结构体形式输入[通俗易懂]

    单链表//elemtype为结构体形式输入[通俗易懂]#include<iostream>usingnamespacestd;typedefstruct{ stringname; intyear;}elemtype;typedefstructlnode{ elemtypedata; lnode*next;}*linklist;elemtypehaha[10];intcreatlist_r(l…

    2022年5月19日
    53
  • linux(6)查看进程ps命令[通俗易懂]

    linux(6)查看进程ps命令[通俗易懂]ps命令Linuxps(英文全拼:processstatus)命令用于显示当前进程的状态,类似于windows的任务管理器查看所有进程ps-A显示所有进程信息,连同命令行ps-

    2022年7月29日
    10

发表回复

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

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