Vue3快速入门——生命周期详解及代码案例

2024-04-24 11:59:29 浏览数 (1)

前言

在 Vue 3 中,组件的生命周期是一个重要的概念,它描述了一个 Vue 组件从创建到销毁的过程中所经历的各个阶段。这些阶段包括组件的创建、挂载、更新和销毁等,Vue 3 提供了相应的钩子函数,允许我们在这些关键时刻执行自定义的逻辑。

下面我们将详细介绍 Vue 3 的生命周期钩子,并通过代码案例来说明它们的用法。

生命周期

Vue 3 的生命周期钩子主要包括以下几个:

  1. setup():组件的初始化阶段,用于设置响应式状态和执行其他初始化操作。
  2. onMounted():组件已经挂载到 DOM 上后调用。
  3. onUpdated():组件的 props 或 slots 更新后调用。
  4. onUnmounted():组件实例被卸载和销毁前调用。

此外,Vue 3 还提供了 onBeforeMount()onBeforeUpdate() 等钩子,用于在挂载和更新之前执行一些操作。

简单介绍了vue3生命周期,接下来我们用代码案例进行演示,

代码语言:js复制
<!-- 步骤1 定义vue关联模块-->
<div id="app">
<!--   搜索框-->
    <input type="text" v-model="searchText">
    <button v-on:click="search">搜索</button>
    <span>{{searchText}}</span>
    <table border="1 solid" colspa="0" cellspacing="0">
        <tr>
            <th>分类</th>
            <th>时间</th>
            <th>状态</th>
            <th>标题</th>
        </tr>
        <tr v-for="(item, index) in articleList" :key="index">
            <td>{{ item.category }}</td>
            <td>{{ item.time }}</td>
            <td>{{ item.state }}</td>
            <td>{{ item.title }}</td>
        </tr>
    </table>

</div>

<script type="module">
    // 步骤2 引入vue模块 在线CDN的引入方式,从vue.esm-browser.js获取到createApp
    import { createApp, ref, onMounted, onUpdated, onUnmounted } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'


    const app = createApp({
        setup() {
            // 使用 ref 创建响应式数据
            const articleList = ref([
                {
                    category: "时事",
                    time: "2023-09-5",
                    state: "已发布",
                    title: "中国男篮缘何一败涂地?",
                },
            ]);
            const searchText = ref('');

            // 生命周期钩子
            onMounted(() => {
                console.log('组件已挂载,开启定时器');
                // 在这里执行挂载后的操作
            });

            onUpdated(() => {
                console.log('组件已更新');
                // 在这里执行更新后的操作
            });

            onUnmounted(() => {
                console.log('组件已卸载');
                // 在这里执行卸载前的清理操作
            });

            // 方法定义
            function search() {
                searchText.value = '你要搜索的文本'; // 使用 .value 来获取或设置 ref 的值
            }

            // 返回响应式数据和方法,以便在模板中使用
            return {
                articleList,
                searchText,
                search,
            };
        },
    }).mount('#app');

</script>

在上面的代码中,我们定义了一个简单的计数器组件。在setup()函数中,我们初始化了一个表格参数,并且定义了一个搜索按钮,然后,我们使用onMounted()onUpdated()onUnmounted()钩子来分别在组件挂载、更新和卸载时执行一些操作。

打开页面控制台,可以看到,组件已加载,说明启动就加载了onMounted()函数,如果点击搜索按钮,页面会显示文字,并且在控制台也可以看到组件已更新,说明触发了onUpdated()函数,结果如图所示。

总结

理解Vue的生命周期对于编写高效、可维护的前端代码至关重要,Vue3通过引入新的API和优化现有功能,使得开发者能够更加灵活地控制组件的生命周期,希望本文的讲解和代码案例能够帮助读者更好地掌握Vue3的生命周期钩子,从而提升开发水平。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

0 人点赞