Stemciljs学习之组件生命周期
组件有许多生命周期方法,可用于了解组件何时“将”和“执行”加载、更新和呈现。可以将这些方法添加到组件中,以便在正确的时间挂接到操作中。
在组件类中实现以下方法之一,Stencil 将以正确的顺序自动调用它们:
单组件的生命周期
import { Component, Host, h, Prop, Watch } from '@stencil/core';
@Component({
tag: 'web-text',
styleUrl: 'web-text.css',
shadow: true,
})
export class WebText {
@Prop() text: string;
@Watch('text')
handlerTextWatcher(val: string, oldVal: string) {
console.log('新值:', val, ',旧值:', oldVal);
console.log('生命周期:watch');
}
connectedCallback() {
console.log('生命周期:connectedCallback');
}
componentWillLoad() {
console.log('生命周期:componentWillLoad');
}
componentWillRender() {
console.log('生命周期:componentWillRender');
}
render() {
console.log('生命周期:render');
return <Host>{this.text}</Host>;
}
componentDidRender() {
console.log('生命周期:componentDidRender');
}
componentDidLoad() {
console.log('生命周期:componentDidLoad');
}
componentShouldUpdate() {
console.log('生命周期:componentShouldUpdate');
}
componentWillUpdate() {
console.log('生命周期:componentWillUpdate');
}
componentDidUpdate() {
console.log('生命周期:componentDidUpdate');
}
disconnectedCallback() {
console.log('生命周期:disconnectedCallback');
}
}
未更改Prop text时console输入的结果

更改Prop text后console输出的结果

具体的生命图示如下(源自官方网站)

更多生命周期相关的细节请参考官方网站
如果要更改
Prop和State的值,建议在componentWill开头的生命周期中去更改,因为带will的生命周期会在组件渲染前执行,在did生命周期内区修改Prop和State的值,有可能会造成死循环;如果必须在did生命周期内区修改Prop和State的值,请一定要做好前置判断
嵌套组件的生命周期
<component-a>
<component-b>
<component-c></component-c>
</component-b>
</component-a>
component-a-componentWillLoad()component-b-componentWillLoad()component-c-componentWillLoad()component-c-componentDidLoad()component-b-componentDidLoad()component-a-componentDidLoad()
结束语
在上一篇中)我们讲解了如何使用stemcil-cli
搭建组件库的方式;那么经过本篇的讲解,我们已经了解了其组件的生命周期;下一篇将讲解stenciljs的相关装饰器。
Stemciljs学习之组件生命周期的更多相关文章
- AngularJs学习笔记-组件生命周期
组件生命周期 (1)组件生命周期钩子 constructor:组件创建时被创建 ngOnChanges: 父组件修改或初始化子组件的输入属性时被调用,如果子组件没有输入属性,则永远不会被调用,它的首次 ...
- vue 学习一 组件生命周期
先上一张vue组件生命周期的流程图 以上就是一个组件完整的生命周期,而在组件处于每个阶段时又会提供一些周期钩子函数以便我们进行一些逻辑操作,而总体来讲 vue的组件共有8个生命周期钩子 beforeC ...
- stenciljs 学习三 组件生命周期
stenciljs 组件包含好多生命周期方法, will did load update unload 实现生命周期的方法比价简单类似 componentWillLoad ....,使用typescr ...
- react学习(6)——关于组件生命周期的问题
在项目开发的过程中,遇到了一个问题: 父组件请求后台数据,收到后将数据以props传给子组件,子组件根据收到数据的不同,显示不同的内容,同时,子组件自身可以根据click操作改变根据父组件的数据显示的 ...
- Angular 5.x 学习笔记(2) - 生命周期钩子 - 暂时搁浅
Angular 5.x Lifecycle Hooks Learn Note Angular 5.x 生命周期钩子学习笔记 标签(空格分隔): Angular Note on cnblogs.com ...
- Vue – 基础学习(1):对生命周期和钩子函的理解
一.简介 先贴一下官网对生命周期/钩子函数的说明(先贴为敬):所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周 ...
- angular2系列教程(五)Structural directives、再谈组件生命周期
今天,我们要讲的是structural directives和组件生命周期这两个知识点.structural directives顾名思义就是改变dom结构的指令.著名的内建结构指令有 ngIf, n ...
- Angular2 组件生命周期
1. 说明 Angular每个组件都存在一个生命周期,从创建,变更到销毁.Angular提供组件生命周期钩子,把这些关键时刻暴露出来,赋予在这些关键结点和组件进行交互的能力. 2. 接口 按照生命周期 ...
- [React] 多组件生命周期转换关系
前段时间一直在基于React做开发,最近得空做一些总结,防止以后踩坑. 言归正传,React生命周期是React组件运行的基础,本文主要是归纳多组件平行.嵌套时,生命周期转换关系. 生命周期 Reac ...
- 【转】Tomcat组件生命周期管理
Tomcat组件生命周期管理 Tomcat中Server,Service,Connector,Engine,Host,Context,它们都实现了org.apache.catalina.Lifecyc ...
随机推荐
- 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析
在 MongoDB 中,我们使用 find() 和 find_one() 方法来在集合中查找数据,就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB ...
- Python 中的字符串基础与应用
在Python中,字符串可以用单引号或双引号括起来.'hello' 与 "hello" 是相同的.您可以使用print()函数显示字符串文字: 示例: print("He ...
- SQLite主键自增代码
引用:https://blog.csdn.net/maowendi/article/details/81115401 insert into TubeRunInfo (UserName) values ...
- C语言 01 概述
历史 C 语言是一门面向过程的计算机编程语言,于 1972 年诞生于贝尔实验室. C 语言是丹尼斯·里奇(Dennis Ritchie)以 B 语言为基础发展而来,因此他被称为 C 语言之父. C 语 ...
- Minio架构简介
简介 Minio是一个go编写基于Apache License v2.0开源协议的对象存储系统,是为海量数据存储.人工智能.大数据分析而设计,它完全兼容Amazon S3接口,十分符合存储大容量的非结 ...
- HarmonyOS多音频播放并发政策及音频管理解析
音频打断策略 多音频并发,即多个音频流同时播放.此场景下,如果系统不加管控,会造成多个音频流混音播放,容易让用户感到嘈杂,造成不好的用户体验.为了解决这个问题,系统预设了音频打断策略,对多音频播放 ...
- k8s之operator
背景 数字经济的兴起推动了云计算.物联网.大数据行业的快速蓬勃发展,对数据中心提出了更高的要求,同时,用户对于数据库运维自动化的需求越来越高,数据库即服务的需求越来越强烈. 随着k8s的普及以及云原生 ...
- 关于双独立时钟fifo的一些细节探讨
最近遇到一个项目,就是接收数据转换成本地数据.两个时钟是频率是基本一样,但是存在5%偏差,而且存在相位差. 这是基本需求.一般转换的办法就是fifo写入有效数据,然后用empty读取出来.但是发现有个 ...
- 力扣614(MySQL)-二级关注者(中等)
题目: 在 facebook 中,表 follow 会有 2 个字段: followee, follower ,分别表示被关注者和关注者. 请写一个 sql 查询语句,对每一个关注者,查询关注他的关注 ...
- 深度解密|基于 eBPF 的 Kubernetes 问题排查全景图发布
简介:通过 eBPF 无侵入地采集多语言.多网络协议的黄金指标/网络指标/Trace,通过关联 Kubernetes 对象.应用.云服务等各种上下文,同时在需要进一步下钻的时候提供专业化的监测工具( ...