当前位置: 首页 > news >正文

金牛网站建设建站空间哪个好

金牛网站建设,建站空间哪个好,网站建设中遇到的问题,网站如何添加认证联盟#x1f642;博主#xff1a;小猫娃来啦 #x1f642;文章核心#xff1a;探索微信小程序、Vue、React和Uniapp生命周期 文章目录 微信小程序、Vue、React和Uniapp的基本定义和应用领域微信小程序生命周期生命周期概述页面生命周期应用生命周期组件和API的生命周期钩子 Vu… 博主小猫娃来啦 文章核心探索微信小程序、Vue、React和Uniapp生命周期 文章目录 微信小程序、Vue、React和Uniapp的基本定义和应用领域微信小程序生命周期生命周期概述页面生命周期应用生命周期组件和API的生命周期钩子 Vue生命周期生命周期钩子函数响应式监听与生命周期关联生命周期的钩子函数在实际开发中的应用数据获取异步操作页面刷新参数传递与响应动态样式和类绑定生命周期钩子函数的应用扩展 React生命周期类组件生命周期方法声命周期方法的触发条件和顺序使用React Hooks对生命周期的变化与影响依赖项【】的解析useEffect是三合一的hook吗 Uniapp生命周期Uniapp中扩展的生命周期钩子在不同平台下如H5、小程序、App等的生命周期差异和适配建议 生命周期比较与总结 微信小程序、Vue、React和Uniapp的基本定义和应用领域 微信小程序 微信小程序是一种基于微信平台的应用程序可以在微信内部直接使用无需下载安装。它采用前端技术构建包括HTML、CSS和JavaScript并且可以调用微信提供的API进行功能扩展。微信小程序适用于各种场景如电商购物、社交娱乐、生活服务等。 Vue Vue是一种流行的JavaScript前端框架用于构建用户界面。它采用渐进式开发的方式具有简洁易学、灵活高效、组件化开发等特点。Vue提供了数据驱动的视图组件通过响应式的数据绑定和组件系统使开发者能够更轻松地构建交互性强、复杂度较高的Web应用。 React React是由Facebook开发的JavaScript库用于构建用户界面。它采用组件化的开发模式将页面拆分为独立的组件每个组件都有自己的状态和生命周期。通过虚拟DOM技术和高效的diff算法React能够快速更新页面并提高性能。React广泛应用于构建单页应用、复杂的用户界面和移动应用。 Uniapp Uniapp是一个基于Vue.js的全端开发框架可以同时开发多个平台的应用包括微信小程序、H5、App和各大主流应用市场。使用Uniapp可以通过一套代码在多个平台上实现应用的开发和发布提高开发效率和跨平台兼容性。Uniapp适用于需要在多个平台上发布应用程序的开发者。 应用领域 微信小程序适用于开发微信生态系统中的应用如电商购物、社交娱乐、生活服务等。 Vue适用于构建各种类型的Web应用从简单的静态网页到复杂的单页应用都可以使用Vue进行开发。 React适用于开发单页应用、复杂用户界面和移动应用特别适合需要高性能、交互复杂的应用场景。 Uniapp适用于需要在多个平台上发布应用程序的开发者可以节省开发成本和提高开发效率。 微信小程序生命周期 生命周期概述 生命周期特点 小程序的生命周期包括App、Page和Component三个层级每个层级都有自己的生命周期函数。App层级的生命周期涵盖了整个小程序的运行过程包括小程序的启动、后台进入前台、前台进入后台等。Page层级的生命周期关注于页面的加载、显示、交互和卸载等过程。Component层级的生命周期与自定义组件的使用相关涵盖了自定义组件的创建、更新和销毁等。 作用 生命周期函数提供了不同阶段执行代码的机会可以在适当的时候处理数据加载、初始化操作、页面渲染、事件监听等。通过生命周期函数开发者可以在特定时刻执行相应的业务逻辑并控制页面的展示和行为。生命周期也与用户体验密切相关可以通过合理地利用生命周期函数来提高小程序的性能和响应速度。在页面跳转、数据传递等场景下生命周期函数还可以起到数据传递和状态管理的作用。 页面生命周期 onPageLoad 作用在页面加载时触发一般用于进行初始化操作。注意事项仅在页面第一次加载时触发在页面切换时不会再次触发。 onShow 作用在页面显示时触发一般用于处理页面展示前的数据加载和更新。注意事项在页面切换、后台进入前台、模态框关闭等情况下都会触发。 onReady 作用在页面初次渲染完成时触发表示页面已经准备好了可以和用户进行交互。注意事项仅在页面初次渲染完成时触发之后页面更新不会再触发该函数。 onHide 作用在页面隐藏时触发一般用于处理页面切换/离开时的资源释放和数据保存操作。注意事项在页面切换、后台进入前台、模态框打开等情况下都会触发。 onUnload 作用在页面卸载时触发一般用于清理页面相关的定时器、事件监听等资源。注意事项页面卸载时会触发包括页面跳转、返回上一页等操作。 应用生命周期 onLaunch 作用在小程序初始化完成时触发一般用于进行全局的初始化操作。注意事项该函数仅在小程序初始化完成时触发只执行一次。 onHide 作用在小程序进入后台时触发一般用于处理小程序进入后台时的数据保存和资源释放。注意事项当用户点击设备 Home 键、切换到其他小程序或锁屏时会触发该函数。 onError 作用在小程序发生脚本错误或 API 调用失败时触发用于捕获和处理错误信息。注意事项一般用于监控和上报小程序的错误信息可以在该函数中进行错误日志记录等操作。 onShow 作用在小程序进入前台时触发一般用于处理小程序进入前台时的数据更新和页面刷新。注意事项当小程序从后台进入前台时会触发该函数可以进行页面数据的更新和渲染。 组件和API的生命周期钩子 created 作用在组件实例刚刚被创建时触发一般用于进行组件相关的初始数据设置和一些初始化操作。注意事项此时组件数据还未准备好无法与视图进行交互。 attached 作用在组件被添加到页面节点树中时触发一般用于组件的一些进一步初始化操作。注意事项此时组件已经可以与视图进行交互但尚未渲染到页面上。 ready 作用在组件布局完成后触发表示组件已经准备好可以与用户进行交互。注意事项此时组件已经渲染到页面上可以监听事件、更新数据等。 API 的生命周期钩子函数是在使用第三方 API 或库时提供的一些函数接口用于在特定阶段执行自定义逻辑。以下是对 API 生命周期钩子函数的使用场景和注意事项的小结 使用场景 初始化在 API 被调用之前执行一些初始化操作例如设置默认参数、鉴权等。请求发送前在每次请求发送之前执行一些预处理操作例如请求参数的校验、加密等。请求发送后在请求发送成功后执行一些后续处理操作例如从响应中提取数据、进行异常处理等。结束/关闭在所有请求结束或 API 调用完成后执行一些清理操作例如释放资源、关闭连接等。 注意事项 准确选择钩子函数根据需要选择合适的生命周期钩子函数以确保在适当的时机执行特定逻辑。避免过度使用过度使用生命周期钩子函数可能导致代码复杂性增加应谨慎选择和使用。异常处理在生命周期钩子函数中应包含适当的异常处理以避免程序崩溃或产生未处理的错误。性能优化生命周期钩子函数会对程序性能产生影响应注意避免在生命周期钩子函数中执行过多耗时操作以免影响用户体验。 Vue生命周期 生命周期钩子函数 beforeCreate 在实例被创建之初完成数据观测和事件初始化之前被调用。此时组件的实例已经被创建但尚未完成数据响应式绑定也没有 DOM 节点和组件实例的引用。使用场景可以在此阶段执行一些初始化操作例如全局配置的读取、插件的安装等。 created 在实例创建完成后被调用此时实例已完成数据观测、属性和方法的运算但尚未挂载到页面上。可以访问组件实例的 data、methods、props 等属性但无法访问到 DOM 元素。使用场景常用于进行异步数据获取、初始化非响应式数据等操作例如发起网络请求或获取用户位置信息。 mounted 在实例挂载到页面之后被调用此时组件的 DOM 已经渲染完毕。可以通过 this.$el 访问组件的根 DOM 元素并可以直接操作 DOM。使用场景常用于进行 DOM 操作、注册事件监听器等例如绑定图表库、初始化第三方插件等。 updated 当组件的 VNode 更新后被调用但不保证所有子组件也都已更新。可以访问到更新前后的状态可以与之前的数据进行比较执行额外的操作。使用场景常用于监测数据变化并做出相应反应例如根据变化请求更新数据、重新渲染组件等。 destroyed 在组件实例销毁之前调用此时组件实例已解除了数据绑定监听事件被移除子组件也都被销毁。使用场景可以在此阶段执行一些清理操作例如取消网络请求、清除定时器、释放资源等。 生命周期函数的触发顺序是固定的依次是 beforeCreate、created、mounted、updated 和 destroyed。当组件在页面上被销毁时会依次触发 beforeDestroy 和 destroyed 生命周期函数。 响应式监听与生命周期关联 对于Vue的响应式数据变化Vue通过使用data选项来定义组件的响应式数据。当这些数据发生变化时Vue能够自动追踪并更新相关的DOM从而保持视图与数据的同步。这种响应式的特性使得我们能够方便地更新和管理数据同时减少手动操作DOM的工作量。 生命周期钩子函数是在组件实例的不同生命周期阶段被调用的函数。它们提供了一些特定的时间点让我们可以在组件的不同生命周期中执行额外的任务。这些钩子函数包括 created: 在组件实例被创建后调用。此时组件实例已完成配置过程但尚未挂载到DOM。可以在这个阶段进行一些初始化逻辑例如发送网络请求获取数据并将数据赋值给组件中的响应式数据。 mounted: 在组件挂载到DOM后调用。此时组件已经完成挂载可以进行DOM操作、集成第三方库等任务。例如在这个钩子函数中你可以初始化一些图表或其他可视化组件并将数据渲染到相应的元素中。 updated: 在组件更新后调用。当组件的响应式数据发生变化时会重新渲染组件。在这个钩子函数中你可以根据数据的变化执行额外的操作。例如可以重新计算一些属性或调用其他方法来处理数据依赖关系。 beforeDestroy: 在组件销毁之前调用。在这个钩子函数中你可以执行一些清理工作例如取消网络请求、清除定时器、解绑事件监听器等。这可以帮助避免内存泄漏和资源浪费问题。 使用created钩子函数进行数据初始化 export default {data() {return {users: [],};},created() {// 发送网络请求获取用户数据axios.get(/api/users).then(response {this.users response.data;}).catch(error {console.log(error);});}, };使用mounted钩子函数进行第三方库的初始化和操作 export default {mounted() {// 初始化图表库并将数据渲染到图表中const chart new Chart(#myChart, {// 配置选项});chart.render(this.data);}, };使用updated钩子函数处理数据变化后的操作 export default {data() {return {total: 0,items: [],};},updated() {// 计算总数this.total this.items.length;}, };使用beforeDestroy钩子函数进行资源清理 export default {data() {return {timer: null,};},mounted() {// 在组件销毁前清除定时器this.timer setInterval(() {// 定时任务逻辑}, 1000);},beforeDestroy() {clearInterval(this.timer); // 清除定时器}, };生命周期的钩子函数在实际开发中的应用 数据获取 export default {data() {return {users: [],};},created() {// 发送网络请求获取用户列表axios.get(/api/users).then(response {this.users response.data;}).catch(error {console.error(error);});}, };在created生命周期钩子函数中发送网络请求获取用户列表并将返回的数据赋值给组件的响应式数据users。这样当组件被创建时数据就会被加载到组件中。 异步操作 export default {methods: {fetchData() {// 模拟异步操作return new Promise((resolve, reject) {setTimeout(() {resolve(Data fetched successfully!);}, 2000);});},},async created() {try {const result await this.fetchData();console.log(result); // 输出Data fetched successfully!// 执行其他操作} catch (error) {console.error(error);}}, };定义了一个fetchData方法模拟异步操作并返回一个Promise。在created钩子函数中使用async/await来处理异步操作等待fetchData方法的执行结果并在结果返回后进行其他操作。 页面刷新 export default {data() {return {count: 0,};},mounted() {this.count localStorage.getItem(count) || 0;window.addEventListener(beforeunload, this.saveData);},beforeDestroy() {this.saveData();window.removeEventListener(beforeunload, this.saveData);},methods: {saveData() {localStorage.setItem(count, this.count);},}, };mounted生命周期钩子函数来加载之前存储在localStorage中的计数器值并添加一个beforeunload事件监听器在页面即将刷新或关闭时保存数据。同时在beforeDestroy钩子函数中手动执行保存数据的操作并且从事件监听器中移除。 参数传递与响应 export default {props: [id],watch: {id(newId, oldId) {// 监听id变化并做出响应console.log(ID changed from ${oldId} to ${newId});// 执行其他操作},}, };组件接收一个名为id的属性并使用watch选项来监听id的变化。当id的值发生变化时会触发watch中定义的回调函数并对变化做出响应。 动态样式和类绑定 export default {data() {return {isActive: false,};},computed: {classes() {return {active: this.isActive,text-bold: this.isActive,};},}, };根据isActive的值动态生成一个包含样式类名的对象classes。这样在渲染组件时可以使用v-bind:class指令将这些类绑定到元素上从而实现动态样式的效果。 生命周期钩子函数的应用扩展 export default {beforeCreate() {// 在创建组件实例之前执行的逻辑},beforeMount() {// 在组件挂载到DOM之前执行的逻辑},updated() {// 组件更新后执行的逻辑},activated() {// 在keep-alive组件激活时执行的逻辑},deactivated() {// 在keep-alive组件停用时执行的逻辑},errorCaptured(err, vm, info) {// 捕获组件内部错误的逻辑}, };React生命周期 类组件生命周期方法 当使用React框架时以下是一些常用的生命周期方法及其用途的解析和说明 constructor(props) 作用组件的构造函数在组件被实例化时执行。通常用于初始化状态State和绑定事件处理函数的方法。注意事项如果在构造函数中使用this.setState()来初始化状态应避免直接修改状态对象。而是使用只能写入一次的this.state {…}语法。 componentDidMount() 作用在组件第一次渲染到DOM后执行。通常用于进行异步操作、初始化第三方库、添加事件监听器等。注意事项可以在该方法中使用this.setState()来更新状态但请注意避免无限循环渲染。 componentDidUpdate(prevProps, prevState) 作用在组件更新后执行。通常用于响应属性或状态的变化并在需要时执行相应的操作如重新请求数据、更新DOM等。注意事项要避免在此方法中使用this.setState()否则可能导致无限循环更新。 componentWillUnmount() 作用在组件从DOM中移除之前执行。通常用于清理工作如取消订阅、移除事件监听器、清除定时器等。注意事项在此方法中执行的清理操作对应用的性能和内存管理至关重要。 其他生命周期方法 shouldComponentUpdate(nextProps, nextState): 用于优化性能决定是否重新渲染组件。getDerivedStateFromProps(nextProps, prevState): 在属性更新后、状态更新前调用用于根据新属性的值更新状态。getSnapshotBeforeUpdate(prevProps, prevState): 在更新之前获取DOM状态的快照在componentDidUpdate中使用。 从React 17版本开始使用新的异步生命周期方法替代旧的生命周期方法。例如componentDidMount可以使用useEffect钩子函数来实现而componentDidUpdate可以使用useEffect与依赖项数组配合使用来替代。 另外对于函数式组件可以使用React的钩子函数比如useEffect和useState等来实现类似于生命周期方法的功能。 接下来看一下17版本后的hooks useState(initialState) 作用在函数式组件中声明状态。返回一个包含当前状态值和更新状态的函数的数组。 import React, { useState } from react;function Example() {const [count, setCount] useState(0);return (divpCount: {count}/pbutton onClick{() setCount(count 1)}Increment/button/div); }useEffect(effect, dependencies) 作用在函数式组件中执行副作用操作比如订阅事件、请求数据等。可以理解为将生命周期方法 componentDidMount、componentDidUpdate 和 componentWillUnmount 的功能合并到一个钩子函数中。 import React, { useState, useEffect } from react;function Example() {const [count, setCount] useState(0);useEffect(() {document.title Count: ${count};}, [count]);return (divpCount: {count}/pbutton onClick{() setCount(count 1)}Increment/button/div); }useContext(context) 作用在函数式组件中访问 React 上下文Context的值。 import React, { useContext } from react;const ThemeContext React.createContext(light);function Example() {const theme useContext(ThemeContext);return divCurrent theme: {theme}/div; }useReducer(reducer, initialState) 作用在函数式组件中管理复杂的状态逻辑类似于 Redux 中的 reducer 和 state。 import React, { useReducer } from react;function reducer(state, action) {switch (action.type) {case increment:return { count: state.count 1 };case decrement:return { count: state.count - 1 };default:throw new Error();} }function Counter() {const [state, dispatch] useReducer(reducer, { count: 0 });return (divCount: {state.count}button onClick{() dispatch({ type: increment })}Increment/buttonbutton onClick{() dispatch({ type: decrement })}Decrement/button/div); }通过使用 Hooks我们可以在函数式组件中使用各种 React 特性如状态管理、副作用操作、上下文等。Hooks 提供了一种更简洁、可复用和易于测试的方式来编写组件逻辑。要注意的是Hooks 只能在函数式组件中使用而不能在类组件中使用。 声命周期方法的触发条件和顺序 生命周期方法的执行顺序 挂载阶段初次渲染 函数式组件没有类似于 componentDidMount() 的生命周期方法。类组件constructor()、render()、componentDidMount() 更新阶段 函数式组件使用 useEffect() 进行副作用操作并根据依赖项数组中的值决定是否重新运行副作用。类组件render()、componentDidUpdate() 卸载阶段 函数式组件使用 useEffect() 返回一个清理函数来模拟 componentWillUnmount()。类组件componentWillUnmount() 更新操作触发条件和过程 父组件重新渲染 无论是函数式组件还是类组件当父组件重新渲染时子组件会被重新渲染。 函数式组件 使用 useState() 或 useReducer() 定义的状态发生改变。使用 useContext() 的上下文数据发生改变。 使用自定义的 Hook 触发更新。 过程 组件重新执行函数体。useEffect() 中的副作用操作会根据依赖项数组中的值决定是否重新运行。 类组件 使用 setState() 更新状态。父组件传递新的 props。 过程 shouldComponentUpdate() 被调用根据返回值决定是否进行后续的更新操作。render() 方法重新构建并返回新的 JSX 元素结构。componentDidUpdate() 被调用可以执行更新后的副作用操作。 注意React 17 版本以后推荐使用函数式组件和 React Hooks 来编写组件而类组件的使用已不再被官方推荐。函数式组件和类组件之间的生命周期方法和更新操作触发条件有一些差异我们需要根据具体版本和编写的组件类型来正确使用相应的生命周期方法和钩子函数。 使用React Hooks对生命周期的变化与影响 一段代码来诠释一下 import React, { useState, useEffect } from react;function MyComponent() {const [count, setCount] useState(0);useEffect(() {// componentDidMount 和 componentDidUpdate 的逻辑console.log(Component did mount or update);// 清理函数相当于 componentWillUnmountreturn () {console.log(Component will unmount);};}, [count]); // 仅在 count 改变时触发 useEffectreturn (divpCount: {count}/pbutton onClick{() setCount(count 1)}Increment/button/div); }以上代码当中useState() 用于定义状态 count 并提供更新它的方法 setCount。 useEffect() 方法中的回调函数在组件初次渲染和每次 count 发生变化时都会被执行模拟 componentDidMount 和 componentDidUpdate 的功能。根据依赖项数组 [count] 的设置仅当 count 改变时才会触发 useEffect。返回的清理函数相当于 componentWillUnmount用于在组件被卸载前执行清理操作。 值得一提的是useEffect()操作的是副作用只要依赖项[count]变这个函数里的逻辑全部会执行一遍。 下面详细说一下【】 依赖项【】的解析 空数组 []在 useEffect 或其他依赖项相关的 Hook 中传递空数组意味着只在组件挂载和卸载时执行副作用操作类似于 componentDidMount 和 componentWillUnmount。这样的副作用操作仅在组件的生命周期开始和结束时运行一次不会有其他触发重新执行的情况。 useEffect(() {// 仅在组件挂载和卸载时执行console.log(Component did mount);return () {console.log(Component will unmount);}; }, []);存在依赖项的数组如果将依赖项数组中包含了某个状态或属性那么只有当该状态或属性发生变化时副作用操作才会重新执行。 const [count, setCount] useState(0);useEffect(() {// 当 count 发生变化时执行副作用操作console.log(Count changed:, count); }, [count]);不传递依赖项数组如果不传递依赖项数组副作用操作将在每次组件渲染后都执行类似于 componentDidMount 和 componentDidUpdate。 useEffect(() {// 每次组件渲染后都执行console.log(Component rendered);return () {console.log(Component will unmount);}; });这里又会引出一个问题这个useEffect的hook是三合一吗 下面就这个问题进行说明: useEffect是三合一的hook吗 虽然 useEffect 函数可以替代 componentDidMount、componentDidUpdate 和 componentWillUnmount 这三个生命周期方法的功能但它并不是完全的 “三合一”。 具体来说useEffect Hook 的功能如下 componentDidMount通过将一个空数组 [] 作为依赖项传递给 useEffect可以模拟 componentDidMount 的效果即在组件挂载后执行一次副作用操作。 componentDidUpdate通过在 useEffect 的依赖项数组中传递特定的状态或属性可以控制副作用操作在相应的状态或属性发生变化时执行从而模拟 componentDidUpdate 的效果。 componentWillUnmount通过在 useEffect 的返回函数中进行清理操作可以模拟 componentWillUnmount 的效果即在组件卸载前执行一次清理副作用操作。 因此useEffect 可以替代上述三个生命周期方法的功能但并不是完全等价。它主要提供了一种更简洁和集中管理副作用操作的方式使得代码更易读和维护。 可以说useEffect是didmount和didupdata的简单合并。 ⭐⭐⭐关键点 而useEffect的执行时机主要是初次渲染时和 组件完成更新以后执行。 具体是以什么时间为准呢 以页面真实DOM加载为准即didmount或didupdata之后即真实DOM加载完成之后执行useEffect Uniapp生命周期 beforeCreate在实例初始化之后数据观测data observer和事件配置event/watcher setup之前被调用。 created在实例创建完成后被调用此时组件实例已经完成以下配置数据观测data observer属性和方法的运算watch/event 事件回调。然而挂载阶段还未开始$el 属性尚不可用。 beforeMount在挂载开始之前被调用在这个阶段模板编译完成但尚未把编译好的模板挂载到页面中。 mounted在挂载完成后被调用此时组件已经被挂载到页面中可以操作 DOM 元素。 beforeUpdate在组件更新之前被调用发生在虚拟 DOM 重新渲染和打补丁之前你可以在这个钩子中进一步地更改状态或修改 DOM。 updated在组件更新完毕之后被调用此时组件更新完成DOM 已经重新渲染。 activated仅 App 端可用当前页面被激活时调用只适用于 App 编译模式。 deactivated仅 App 端可用当前页面被停用时调用只适用于 App 编译模式。 beforeDestroy在实例销毁之前调用。在这一步实例仍然完全可用。 destroyed在实例销毁之后调用。此时Vue 实例已经解除所有的绑定所有的事件监听器都被移除所有的子实例也都被销毁。 值得注意的是Uniapp 还提供了一些特定平台的生命周期函数如 onLaunch小程序启动时调用、onShow小程序启动或从后台进入前台时调用、onHide小程序从前台进入后台时调用等。这些特定平台的生命周期函数可以根据不同平台的需求进行使用。 Uniapp中扩展的生命周期钩子 在 Uniapp 中除了常用的 Vue 组件生命周期函数外还有一些 Uniapp 独有的生命周期函数这些生命周期函数主要用于处理特定平台或 Uniapp 自身的事件和行为。 beforeEnter在进入页面前触发用于页面跳转前的逻辑处理。可以在这个生命周期函数中进行一些页面跳转前的操作例如校验登录状态、权限验证等。仅在 H5 和 App 编译模式下生效。 onBackPress在页面返回按钮如安卓手机的物理返回键被点击时触发。通过监听该生命周期函数可以实现页面返回按钮的自定义行为。仅在 App 编译模式下生效。 onUniNViewMessage在非当前页面的状态栏点击时触发用于处理跨页面通信。Uni-app 的 nvue 页面有自己独立的渲染线程在不同页面之间无法共享数据。通过该生命周期函数可以实现 nvue 页面之间的通信。仅在 App 编译模式下生效。 以上是 Uniapp 独有的一些生命周期函数它们提供了处理特定平台或 Uniapp 自身行为的能力。我们可以根据具体需求在相关生命周期函数中编写相应的逻辑来实现特定功能。 在不同平台下如H5、小程序、App等的生命周期差异和适配建议 H5 平台 生命周期差异H5 平台的生命周期与 Vue 的生命周期一致没有特殊的差异。适配建议在 H5 平台开发时可以按照 Vue 的生命周期函数编写代码无需额外的适配。 小程序平台 生命周期差异小程序平台的生命周期函数与 Vue 的生命周期函数有一定的差异。小程序增加了一些自身特有的生命周期函数如 onLaunch、onShow、onHide 等。适配建议在编写小程序的 Uniapp 项目时需注意识别并使用小程序平台特有的生命周期函数以满足小程序的需求。可以根据实际情况在小程序特有的生命周期函数中添加对应的逻辑。 App 平台 生命周期差异App 平台的生命周期函数与 Vue 的生命周期函数也有一定的差异。App 平台增加了一些自身特有的生命周期函数如 onLaunch、onShow、onHide 等。同时App 还有一些特定于 App 端的生命周期函数如 onBackPress、onUniNViewMessage 等。适配建议在开发 App 平台的 Uniapp 项目时需要根据实际需求适配 App 端的生命周期函数。可以通过监听特定的生命周期函数实现 App 平台特有的行为和功能如处理返回按钮点击、跨页面通信等。 快应用平台 生命周期差异快应用平台的生命周期函数与 Vue 的生命周期函数有一定的差异。快应用增加了一些自身特有的生命周期函数如 onInit、onReady、onDestroy 等。适配建议在编写快应用的 Uniapp 项目时需要根据实际需求适配快应用平台特有的生命周期函数。可以在这些生命周期函数中添加对应的逻辑和操作。 微信小游戏平台 生命周期差异微信小游戏平台的生命周期函数与 Uniapp 默认的生命周期函数不完全一致。微信小游戏平台使用的是微信小程序的生命周期函数。适配建议在开发微信小游戏平台的 Uniapp 项目时可以参考微信小程序的生命周期函数根据实际需求进行适配。 生命周期比较与总结 微信小程序生命周期 onLoad: 页面加载时触发。onShow: 页面显示时触发。onReady: 页面初次渲染完成时触发。onHide: 页面隐藏时触发。onUnload: 页面卸载时触发。 Vue 生命周期 beforeCreate: 实例刚创建数据观测和事件配置之前触发。created: 实例已经创建完成数据观测和事件配置完成。beforeMount: 模板编译/挂载之前触发。mounted: 模板编译/挂载完成触发。beforeUpdate: 组件更新之前触发。updated: 组件更新完成触发。beforeDestroy: 实例销毁之前触发。destroyed: 实例销毁完成触发。 React 生命周期 componentDidMount: 组件挂载完成后触发。componentDidUpdate: 组件更新完成后触发。componentWillUnmount: 组件卸载之前触发。 Uniapp 生命周期基于 Vue 的生命周期 beforeCreate: 实例刚创建数据观测和事件配置之前触发。created: 实例已经创建完成数据观测和事件配置完成。beforeMount: 模板编译/挂载之前触发。mounted: 模板编译/挂载完成触发。beforeUpdate: 组件更新之前触发。updated: 组件更新完成触发。beforeDestroy: 实例销毁之前触发。destroyed: 实例销毁完成触发。 需要注意的是虽然 Uniapp 的生命周期和 Vue 生命周期基本一致但在编写 Uniapp 项目时可能还会涉及到特定平台如小程序、App 等的生命周期函数。 ⭐⭐⭐以下是对微信小程序、Vue、React 和 Uniapp 框架的生命周期特点、优势和限制的综合分析和总结 微信小程序生命周期 特点微信小程序生命周期主要包括页面加载、显示、准备渲染、隐藏和卸载等阶段。优势生命周期简单易懂适用于开发小程序应用提供了丰富的生命周期函数来处理不同阶段的逻辑。限制生命周期函数相对较少对于复杂的应用可能需要在不同的事件中处理逻辑缺乏更细粒度的控制。 Vue生命周期 特点Vue 的生命周期包括实例创建、挂载、更新和销毁等多个阶段。优势生命周期函数可以帮助开发者更好地控制组件的行为方便进行异步操作、访问 DOM 元素和处理相关事件。限制Vue 生命周期较为复杂初学者可能需要一些时间来理解和使用。此外在某些特定场景例如服务端渲染下部分生命周期函数可能无法正常运行。 React生命周期 特点React 的生命周期分为组件挂载、更新和卸载三个阶段。优势React 提供了更细粒度的生命周期函数可以方便地进行性能优化和状态管理例如使用 shouldComponentUpdate 控制组件是否需要重新渲染。限制React 16.3 版本之后引入了新的生命周期函数如 getDerivedStateFromProps 和 getSnapshotBeforeUpdate但这些新的函数可能会增加代码复杂度需要开发者具备一定的学习成本。 Uniapp生命周期 特点Uniapp 的生命周期几乎与 Vue 生命周期一致可在多个平台上使用。优势Uniapp 提供了跨平台的开发能力开发者只需编写一次代码即可发布到不同的平台上。生命周期与 Vue 类似易于掌握。限制由于要兼容多个平台一些特定平台的生命周期函数可能无法使用需要根据实际情况进行适配。 综合来说微信小程序的生命周期简单直观适用于小程序开发Vue 的生命周期提供了较为丰富的控制能力适用于构建中大型应用React 的生命周期提供了更细粒度的控制和性能优化能力Uniapp 提供了跨平台开发能力适用于同时开发多个平台的应用。
文章转载自:
http://www.morning.kclkb.cn.gov.cn.kclkb.cn
http://www.morning.redhoma.com.gov.cn.redhoma.com
http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn
http://www.morning.byjwl.cn.gov.cn.byjwl.cn
http://www.morning.yrbhf.cn.gov.cn.yrbhf.cn
http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn
http://www.morning.nzklw.cn.gov.cn.nzklw.cn
http://www.morning.kkdbz.cn.gov.cn.kkdbz.cn
http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn
http://www.morning.qghjc.cn.gov.cn.qghjc.cn
http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn
http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn
http://www.morning.rxpp.cn.gov.cn.rxpp.cn
http://www.morning.bryyb.cn.gov.cn.bryyb.cn
http://www.morning.nnykz.cn.gov.cn.nnykz.cn
http://www.morning.cnbdn.cn.gov.cn.cnbdn.cn
http://www.morning.wmmtl.cn.gov.cn.wmmtl.cn
http://www.morning.tgbx.cn.gov.cn.tgbx.cn
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.muzishu.com.gov.cn.muzishu.com
http://www.morning.ftzll.cn.gov.cn.ftzll.cn
http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn
http://www.morning.chehb.com.gov.cn.chehb.com
http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn
http://www.morning.ttvtv.cn.gov.cn.ttvtv.cn
http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn
http://www.morning.zcmpk.cn.gov.cn.zcmpk.cn
http://www.morning.ylpl.cn.gov.cn.ylpl.cn
http://www.morning.ftmzy.cn.gov.cn.ftmzy.cn
http://www.morning.hwtb.cn.gov.cn.hwtb.cn
http://www.morning.lmxzw.cn.gov.cn.lmxzw.cn
http://www.morning.pwksz.cn.gov.cn.pwksz.cn
http://www.morning.rczrq.cn.gov.cn.rczrq.cn
http://www.morning.skrww.cn.gov.cn.skrww.cn
http://www.morning.hxgly.cn.gov.cn.hxgly.cn
http://www.morning.nqwz.cn.gov.cn.nqwz.cn
http://www.morning.tpfny.cn.gov.cn.tpfny.cn
http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn
http://www.morning.ktrh.cn.gov.cn.ktrh.cn
http://www.morning.hmbxd.cn.gov.cn.hmbxd.cn
http://www.morning.lsnbx.cn.gov.cn.lsnbx.cn
http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn
http://www.morning.nckjk.cn.gov.cn.nckjk.cn
http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn
http://www.morning.qfnrx.cn.gov.cn.qfnrx.cn
http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn
http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn
http://www.morning.tftw.cn.gov.cn.tftw.cn
http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn
http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn
http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn
http://www.morning.fflnw.cn.gov.cn.fflnw.cn
http://www.morning.hghhy.cn.gov.cn.hghhy.cn
http://www.morning.drnjn.cn.gov.cn.drnjn.cn
http://www.morning.alwpc.cn.gov.cn.alwpc.cn
http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn
http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn
http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn
http://www.morning.fjkkx.cn.gov.cn.fjkkx.cn
http://www.morning.fhwfk.cn.gov.cn.fhwfk.cn
http://www.morning.jbshh.cn.gov.cn.jbshh.cn
http://www.morning.lbywt.cn.gov.cn.lbywt.cn
http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn
http://www.morning.zqdhr.cn.gov.cn.zqdhr.cn
http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn
http://www.morning.xnbd.cn.gov.cn.xnbd.cn
http://www.morning.mhcft.cn.gov.cn.mhcft.cn
http://www.morning.fpxsd.cn.gov.cn.fpxsd.cn
http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn
http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn
http://www.morning.mwpcp.cn.gov.cn.mwpcp.cn
http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn
http://www.morning.xnyfn.cn.gov.cn.xnyfn.cn
http://www.morning.pwggd.cn.gov.cn.pwggd.cn
http://www.morning.xlbtz.cn.gov.cn.xlbtz.cn
http://www.morning.thxfn.cn.gov.cn.thxfn.cn
http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn
http://www.morning.ztqj.cn.gov.cn.ztqj.cn
http://www.morning.hgwsj.cn.gov.cn.hgwsj.cn
http://www.morning.itvsee.com.gov.cn.itvsee.com
http://www.tj-hxxt.cn/news/279306.html

相关文章:

  • 怎么看一个网站是不是织梦宁波优化网站排名价格表
  • 没建网站 备案怎么自己免费创建一个网站
  • h5网站快速搭建慢慢来做网站多少钱
  • 织梦网站根目录一般网站字体多大
  • 那个企业网站是用vue做的安徽省住房和城乡建设厅门户网站
  • 企业网站页脚有用dojo做的网站吗
  • iis网页提示网站建设中商城网站设计与实现
  • 网站支付按钮怎么做德州网站建设哪一家好
  • 淘宝客怎么样做自己的网站WordPress交互式网站
  • 百度服务器建设自己的网站碉堡了seo博客
  • 那个企业建网站好易语言可以做网站了吗
  • 小企业做网站制作网站的最新软件
  • 标准企业网站开发合同杭州注册公司有什么优惠政策
  • 贵州企业网站开发公司扬中潘杰简历
  • 途牛网网站建设评价假网站备案
  • 怎么才能注册做网站教人做素食的网站
  • 网站后台的数据库怎么做打电话叫人做网站
  • 白城学习做网站的学校电商培训在线课程
  • 网站建设制作文字教程怎么浏览英文网站
  • 建筑劳务东莞网站建设源码网
  • 自建网站推广手机如何强制下载网页视频
  • 我的WordPress网站程序员最吃香的5个岗位
  • 淘宝做导航网站受欢迎自适应网站建设地址
  • 图派科技做网站怎么样打扑克的直播软件下载
  • 富源县建设局网站外贸企业网站建设哪家好
  • 手机网站怎么打开刷网站关键词排名原理
  • 坪地网站建设效果马可波罗网站如何做产品推广
  • 会计公司网站模板重庆规模最大的建网站公司
  • 汕头网站推广seo中山最好的网站建设
  • 中国建设银行网站色彩企查查企业信息查询手机版