iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue组合式API入门实例代码分析
  • 326
分享到

vue组合式API入门实例代码分析

2023-07-05 16:07:10 326人浏览 安东尼
摘要

这篇文章主要讲解了“Vue组合式api入门实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue组合式API入门实例代码分析”吧!组合式API在vue3.0发布的时候,组合式API

这篇文章主要讲解了“Vue组合式api入门实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue组合式API入门实例代码分析”吧!

组合式API

vue3.0发布的时候,组合式API也随着发布会进入到大众的视野。官网把原来的使用方式命名为选项式API,同时官网也明确表示选项式API是由组合式API所实现的,所以大概后面vue的主推方向应该就是组合式API了。

我学习框架的方法是从语法到词法,再到运行状态。那么先从语法开始学习,照旧还是以官网为例。

//代码一<script setup>     import { ref, onMounted } from 'vue'     // 响应式状态     const count = ref(0)     // 用来修改状态、触发更新的函数     function increment() {         count.value++     }    // 生命周期钩子     onMounted(() => {         console.log(`The initial count is ${count.value}.`)    })</script><template>    <button @click="increment">Count is: {{ count }}</button> </template>

可以看出,组合式API和原来的选项式API还是有差别的,原来的选项式API可以直接使用生命周期,变量声明之类的内置方法,组合式API则需要先引入再使用。

先声明一下,这个不是vue3.0版本的组合式API写法,是vue3.2版本发布时的语法糖,但是也是我个人建议使用的方法,毕竟不推荐的话也不会出这个语法糖。3.0版本的写法有些繁琐,但是大致上大差不差。

//代码二import { Reactive } from 'vue' export default {    // `setup` 是一个专门用于组合式 API 的特殊钩子函数     setup() {         const state = reactive({ count: 0 })        // 暴露 state 到模板        return { state }    }}

这个是最初的组合式API的写法,比起新版的语法糖只是多了一个setup和需要将变量return出来,而这个setup就是我认为的组合式API的核心。

setup

最初的响应式API以 setup 函数作为入口函数, setup函数必须返回两种类型的值:第一是对象,第二是函数。

当 setup 函数返回对象时,对象中的数据或方法可以在 template中被使用,也就相当于data函数里面的变量。当 setup函数返回函数时,函数会被作为 render 函数。

不过可预见的是当页面数据量变大的时候,setup函数会变得巨大,而且return的内容也会膨胀,所以vue3.2的语法糖省略了setup函数的包裹,而是直接将setup放到script里面,里面的代码就等同于放到了setup函数中,而且还省略了return的步骤。虽然没有写出setup函数,但是这段代码的本质就是setup函数的执行。

变量声明

setup函数执行之后,里面的变量会被直接暴露给组件,由组件使用。就以最上面的代码一中的count为例,count被声明之后就可以放到template里面,还可以被increment函数修改后在页面中更新,这个就是靠ref方法,但是说ref之前先要说一下组合式API生命对象的方法reactive。

代码二中的state就是reactive方法声明的对象,reactive和ref一样,都是用来声明变量的,只有通过这两个方法声明后的变量才能做到响应式更新。这里其实是vue为了让用户简单而导致的复杂,具体说比较复杂,我就简单说说吧。

vue3依然是响应式的架构,通过对声明的变量监听从而收集到变量的修改事件,已达到响应式更新的功能。对vue3有一些了解的用户都知道,vue3用的是proxy,但是proxy只能做到对对象代理,如果使用了原始类型,像是string,number之类的就没有办法了,所以vue3为了监听原始类型的数据,使用ref去声明原始类型,从而将原始类型变成对象,看起来通过ref声明后的依然是原始类型,实际上我们修改的是这个变量的value的值,而不是这个对象的值。

组合式API还有一点就是无法直接修改声明的变量值。以代码一为例,无论是count = 3还是count=ref(3)都会导致显示无法更新。同样的,代码二中的state的修改也不可以直接通过state=reactive({a:23})或者state = {a:23}的方式修改。

虽说ref也可以用来生命对象,不过还是不太建议,毕竟还是按照文档的方式去写才能做到最方便的维护,毕竟比维护别人的烂代码更难受的就是维护自己的烂代码。

当 ref 在模板中作为顶层属性被访问时,它们会被自动“解包”,所以不需要使用 .value。所以代码一中,template中的count不需要写作count.value。

说回组合式API,变量修改之后,组合式API和选项式API一样,是无法做到立刻将显示更新的,所以想要获取到变量修改后的页面元素就需要nextTick,用法和vue的nextTick是一样的,就不多赘述了。

目前比起选项式API的优点

从代码一和代码二中可以看出,组合式API里面不需要将变量放到data里面,函数放到method里面,这样的话可以让有相关性的变量和函数放到一起。开发选项式API的时候当页面数据量大的时候在method写函数的时候忘记了变量名称,就需要滑到data里面看一下,然后在滑回method继续写函数。组合式API不能说完全避免,但是能大大减少这种情况的出现。

生命周期

vue组合式API入门实例代码分析

生命周期官网图片还是挺全的,基本上和选项式API差不多,就是改改名字,去掉了create,改用setup。

Vue2.xVue3
beforeCreatesetup
created
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeDestroyonBeforeUnmount
destroyedonUnmounted

从这篇文章中找到了一个对比的列表,大体上是可以一一对应的。生命周期的逻辑我就不多赘述了,由于用法不同,所以这里我就根据代码一放一个错误的例子。

setTimeout(() => {     onMounted(() => {         // 异步注册时当前组件实例已丢失         // 这将不会正常工作 })      }, 100 )

生命周期可以放到函数里面,然后在setup里面调用,但是不能放到异步函数里面。

感谢各位的阅读,以上就是“vue组合式API入门实例代码分析”的内容了,经过本文的学习后,相信大家对vue组合式API入门实例代码分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: vue组合式API入门实例代码分析

本文链接: https://www.lsjlt.com/news/353421.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue组合式API入门实例代码分析
    这篇文章主要讲解了“vue组合式API入门实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue组合式API入门实例代码分析”吧!组合式API在vue3.0发布的时候,组合式API...
    99+
    2023-07-05
  • Vue组合式API源码分析
    这篇“Vue组合式API源码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue组合式API源码分析”文章吧。一. 为什...
    99+
    2023-07-05
  • javascript入门实例代码分析
    这篇文章主要介绍“javascript入门实例代码分析”,在日常操作中,相信很多人在javascript入门实例代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java...
    99+
    2022-10-19
  • python入门代码实例分析
    这篇文章主要介绍“python入门代码实例分析”,在日常操作中,相信很多人在python入门代码实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python入门代码实例...
    99+
    2022-10-19
  • Rollup入门实例代码分析
    这篇文章主要介绍了Rollup入门实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Rollup入门实例代码分析文章都会有所收获,下面我们一起来看看吧。Rollup介绍及使用1、Rollup 概述仅仅是...
    99+
    2023-07-05
  • Canvaskit快速入门实例代码分析
    这篇“Canvaskit快速入门实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Canvaskit快速入门实例代码...
    99+
    2023-07-05
  • Python快速入门实例代码分析
    这篇文章主要介绍了Python快速入门实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python快速入门实例代码分析文章都会有所收获,下面我们一起来看看吧。Python 安装已经安装软件的小伙伴要检...
    99+
    2023-07-05
  • Vue新手入门实例分析
    本篇内容介绍了“Vue新手入门实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! Vue实例和模板语法<body>...
    99+
    2023-06-27
  • Java入门数组实例分析
    今天小编给大家分享一下Java入门数组实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。认识数组数组的定义数组是相同类型...
    99+
    2023-06-30
  • react-router-dom路由入门实例代码分析
    这篇文章主要介绍了react-router-dom路由入门实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react-router-dom路由入门实例代码分析文章都会有所收获,下面我们一起来看看吧。r...
    99+
    2023-07-05
  • Python数据类型入门实例代码分析
    本文小编为大家详细介绍“Python数据类型入门实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python数据类型入门实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2022-10-19
  • Python爬虫技术入门实例代码分析
    这篇“Python爬虫技术入门实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python爬虫技术入门实例代码分析...
    99+
    2023-07-05
  • PHP反序列化入门代码实例分析
    本文小编为大家详细介绍“PHP反序列化入门代码实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP反序列化入门代码实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。php反序列化简单理解首先我们需要...
    99+
    2023-07-05
  • Java注解入门案例代码分析
    这篇文章主要介绍“Java注解入门案例代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java注解入门案例代码分析”文章能帮助大家解决问题。Talk is cheap, show me the...
    99+
    2023-07-05
  • Angular独立组件入门实例分析
    这篇文章主要讲解了“Angular独立组件入门实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Angular独立组件入门实例分析”吧!Angular 独立组件入门如果你正在学习 Ang...
    99+
    2023-07-05
  • C语言数组入门实例分析
    本篇内容主要讲解“C语言数组入门实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言数组入门实例分析”吧!1.一维数组数组的定义: 数组是一组相同类型元素的集合a.一维数组的创建数组的创...
    99+
    2023-06-30
  • Vue选项式API的生命周期选项和组合式API源码分析
    本文小编为大家详细介绍“Vue选项式API的生命周期选项和组合式API源码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue选项式API的生命周期选项和组合式API源码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-07-05
  • C# Marshal类基本概念和入门实例代码分析
    本文小编为大家详细介绍“C# Marshal类基本概念和入门实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“C# Marshal类基本概念和入门实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-07-05
  • Vue数据响应式原理实例代码分析
    本文小编为大家详细介绍“Vue数据响应式原理实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue数据响应式原理实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。改造数据我们先来尝试写一个函数...
    99+
    2023-07-04
  • Vue-Router使用实例代码分析
    本文小编为大家详细介绍“Vue-Router使用实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue-Router使用实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Vue-Router的...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作