Vue 初始化數組后操作另一個數組onMounted和watch

Vue 的父组件和子组件的生命周期钩子函数执行顺序可以归类为以下 4 部分:

1、加载渲染过程

父 beforeCreate -> 父 created -> 父 beforeMount -> 子 beforeCreate -> 子 created -> 子beforeMount -> 子 mounted -> 父 mounted

注意:mounted 不会保证所有的子组件也都被一起挂载。如果希望等到整个视图都渲染完毕,可以在 mounted 内部使用 vm.$nextTick

2. 父组件更新过程

父 beforeUpdate -> 父 updated

3. 子组件更新过程

父 beforeUpdate -> 子 beforeUpdate -> 子 updated -> 父 updated

4. 销毁过程

父 beforeDestroy -> 子 beforeDetroy -> 子 destroyed -> 父 destroyed

https://www.cnblogs.com/bala/p/15884167.html

解決方案1

通過鈎子函數操作,前提是emailAddArr 已經有數據。

所以typescript需要定義emailAddArr為全局變量,這樣會在第一時間賦值。

复制代码
const emailAddArr = ref([] as string[])

在函數前定義

export function useEmailSent() {                    

onMounted(() => {
  list.value = emailAddArr.value.map((item) => {
    elHelper.alertBox(item + '')
    return { emailValue: `${item}`, emailLabel: `${item}` }
  })
})

解決方案二

這個方案是最合理的

复制代码
watch(emailAddArr.value, () => {
  list.value = emailAddArr.value.map((item) => {
    elHelper.alertBox(item + '')
    return { emailValue: `${item}`, emailLabel: `${item}` }
  })
})
相关推荐
益达是我17 小时前
【element-plus】element-plus升级到v2.11.7,el-tree文字不显示问题
前端·javascript·vue.js·element-plus
社恐的下水道蟑螂17 小时前
从 JS 单线程到 Promise:彻底搞懂异步编程的 "同步化" 魔法
前端·javascript
Mrk17 小时前
Vue3 渲染器源码实现
vue.js
晴殇i17 小时前
《效率翻倍!12个被90%前端忽视的CSS神技》
前端·css·面试
重铸码农荣光17 小时前
从回调地狱到优雅异步:Promise 带你吃透 JS 异步编程核心
vue.js·promise
NiKo_W17 小时前
Linux 重定向与Cookie
linux·运维·服务器·前端·网络·线程·协议
Mr_汪17 小时前
离线工程集成其他推送
前端
惜茶17 小时前
使用前端框架vue做一个小游戏
前端·vue.js·前端框架
普通码农18 小时前
Vue 3 接入谷歌登录 (小白版)
前端·vue.js
Ric97018 小时前
Object.fromEntries 实操
前端