【Web】【Android】Vue和Android生命周期对比

news/2024/11/18 0:36:42/

Vue.js 和 Android 都是常用的前端和移动开发框架(Android这个东西在讲系统的时候是个系统,讲框架的时候是个框架),它们都提供了生命周期(Lifecycle)机制来管理组件或 Activity 的状态。以下是 Vue.js 组件生命周期和 Android Activity 生命周期的详细对比:

创建阶段

Vue.js 组件的创建阶段包括 beforeCreate、created、beforeMount 和 mounted 四个生命周期钩子。
beforeCreate 刚被创建、未初始化
created 已经完成数据的初始化,
beforeMount 将要挂载到页面上,
mounted 已经挂载到页面上。

Android Activity 的创建阶段包括 onCreate()、onStart()、onResume() 三个生命周期方法。
onCreate() 表示 Activity 被创建了,但视图还没有加载,
onStart() 表示页面即将可见,
onResume() 表示 Activity 变为前台并获得用户焦点。

运行阶段

Vue.js 组件的运行阶段包括 beforeUpdate、updated 两个生命周期钩子。
beforeUpdate 表示数据即将更新,但页面还未渲染,
updated 表示数据已经更新,且页面已经渲染完毕。

Android Activity 的运行阶段包括 onPause()、onStop()、onRestart() 三个生命周期方法。
onPause() 表示 Activity 即将不再可见,但它仍在前台,
onStop() 表示 Activity 完全不可见,即退到后台,但未被销毁,
onRestart() 表示 Activity 重新被唤醒。

销毁阶段

Vue.js 组件的销毁阶段包括 beforeDestroy 和 destroyed 两个生命周期钩子。
beforeDestroy 表示组件即将销毁,
destroyed 表示组件已经销毁。

Android Activity 的销毁阶段包括 onDestroy() 生命周期方法,表示 Activity 要被销毁。

Android 示例
class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)Log.d("Activity", "onCreate")}override fun onStart() {super.onStart()Log.d("Activity", "onStart")}override fun onResume() {super.onResume()Log.d("Activity", "onResume")}override fun onPause() {super.onPause()Log.d("Activity", "onPause")}override fun onStop() {super.onStop()Log.d("Activity", "onStop")}override fun onDestroy() {super.onDestroy()Log.d("Activity", "onDestroy")}}
Vue.js 示例
<template><div><p>{{ message }}</p><button @click="changeMessage">Change Message</button></div>
</template><script>
export default {data() {return {message: 'Hello, Vue.js!'}},mounted() {console.log('mounted')},methods: {changeMessage() {this.message = 'New message!'}},beforeDestroy() {console.log('beforeDestroy')},destroyed() {console.log('destroyed')}
}
</script><style scoped>
p {font-size: 24px;
}
button {margin-top: 16px;padding: 8px;
}
</style>

在这个示例中,我们定义了一个简单的组件,包括一个显示消息的段落和一个按钮。在组件的 data() 方法中定义了 message 数据,用来控制消息的显示。在 mounted() 生命周期钩子中输出日志,表示该组件已经挂载到页面上。在 methods 中定义了一个方法 changeMessage(),当点击按钮时,会触发这个方法,从而改变消息的内容。同时,在 beforeDestroy() 和 destroyed() 生命周期钩子中分别输出日志,表示组件即将被销毁和已经被销毁。

比较

通过以上两个示例,我们可以看出两者的异同之处:

相同点:Android 和 Vue.js 都提供了一套完整的生命周期机制,开发者可以在不同生命周期阶段中加入相应的逻辑,以达到管理状态和控制界面的目的。

不同点:在代码中的具体实现上,Android 和 Vue.js 有一些不同的细节。例如,Android 的生命周期方法是预定义的,而 Vue.js 的生命周期钩子是组件特定的;Android 的生命周期方法中,onCreate()、onStart() 和 onResume() 是必须定义的,而 Vue.js 的生命周期钩子则可以根据需要自由组合;在实际应用中,两者的适用场景和使用方式也会存在一定差异。


http://www.ppmy.cn/news/89020.html

相关文章

Linux安装与配置ansible

文章目录 Linux安装Ansible一、安装ansible二、配置管理节点和远程主机的连接使用ssh-keygen生成密钥复制SSH密钥到远程主机验证SSH配置 三、主机清单配置文件四、Ansible的配置文件 Linux安装Ansible 在Linux上安装Ansible可以通过以下步骤完成&#xff1a; 一、安装ansible…

六级备考23天|CET-6|翻译技巧5-2|2019年12月真题|翻译荷花lotus|11:05-12:05

目录 一、中文 句子1 PRACTICE ANSWER 句子2 PRACTICE ANSWER 句子3 ​ PRACTICE ANSWER 句子4 PRACTICE ANSWER 句子5 PRACTICE ANSWER 句子6 PRACTICE ANSWER ​ 答案整合​ 一、中文 句子1 荷花是中国的名花之一&#xff0c;深受人们喜爱。 PRACTICE Lotus is one…

GDAL3.4.3和Numpy库发生的报错:numpy.core.multiarray failed to import

GDAL3.4.3和Numpy库发生的报错&#xff1a;numpy.core.multiarray failed to import 一、问题&#xff1a;module compiled against API version 0xe but this version of numpy is 0xd 的意思是 &#xff1a;模块根据API版本0xe编译&#xff0c;但此版本的numpy是0xd 并且报错…

Java数据类型之字符串

字符集/编码表 ex&#xff1a;ASCII码 字符char&#xff1a;单引号‘ ’引起来的单个字符 转义字符 \n 作用&#xff1a;换行&#xff0c;单引号引用&#xff01;&#xff01;&#xff01; 制表符 \t 作用&#xff1a;加上 \t 前面一共空8个 字符与编码的转换 1.直接输出字…

基于SpringBoot的SSMP的整合案例

基于SpringBoot的SSMP的整合案例 简单介绍模块创建创建实体类导入Mybatis-plus和druid的配置文件使用junit测试查询方法MP分页查询按照条件进行查询业务层Service开发业务层Service快速开发表现层开发表现层 实现分页查询表现层消息一致性的处理查询所有书本信息添加书本删除操…

openldap2.4版本管理员文档中文翻译版

OpenLDAP2.4管理员指南 文章目录 1.OpenLDAP介绍2.快速开始指南1.获得软件2.解压压缩包3.阅读文档4.运行configure5.编译软件6.测试编译结果7.安装软件8.编辑配置文件9.导入数据库配置10.启动slapd11.添加初始条目到目录中12.检测添加结果 3.大图片-配置选择1.本地目录服务2.带…

MATLAB 获取圆柱邻域点 (10)

MATLAB 圆柱邻域点提取 (10) 一、算法介绍二、算法实现1.代码2.函数解释(一看就懂)3.效果4.总结一、算法介绍 在点云中寻找圆柱形区域内的点,给定一组参数可以确定一个圆柱,从而将位于圆柱内的点云提取出来,需要的情况下,我们可以通过改变圆柱的中心位置,获取每个点云…

JavaEE(系列11) -- 多线程案例4(线程池)

目录 1. 线程池 2. 创建线程池 2.1 Executors类 2.2 ThreadPoolExecutor类 3. 自己实现线程池 1. 线程池 线程池是一种多线程处理形式&#xff0c;处理过程中将任务添加到队列&#xff0c;然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈…