返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3.0中setup的两种用法实例
  • 935
分享到

vue3.0中setup的两种用法实例

2024-04-02 19:04:59 935人浏览 薄情痞子
摘要

目录前言一、setup函数的特性以及作用二、setup函数的注意点:用法1:结合ref使用用法2:代码分割总结前言 这篇文章主要介绍了vue3.0中setup使用,本文通过两种用法给

前言

这篇文章主要介绍了vue3.0中setup使用,本文通过两种用法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

什么是setup

setup是Vue3新增的生命周期函数,setup的加入就是为了让vue3使用组合式api(Composition API)。使用组合式API更符合大型项目开发,通过setup可以将该部分抽离成函数,让其他开发者就不用关心该部分逻辑。

setup真香

setup位于beforeCreated之前,用于代替created 和beforeCreated。不仅是作为vue3新增的生命周期函数,还可以在setup中引入外部js文件方法,可在js中共用vue全部生命周期。

哈哈,是不是和之前的mixin很像?没错,setup可以更好的拆分业务,只把需要用到的公共参数和方法return出去使用,而不像mixin一样完全侵入原有vue文件,再也不用考虑参数方法重名问题了,用到哪个取哪个,引入再多js也不怕。

一、setup函数的特性以及作用

可以确定的是 Vue3.0 是兼容 Vue2.x 版本的 也就是说我们再日常工作中 可以在 Vue3 中使用 Vue2.x 的相关语法 但是当你真正开始使用 Vue3 写项目时 你会发现他比 Vue2.x 方便的多

Vue3 的一大特性函数 ---- setup

1、setup函数是处于 生命周期函数 beforeCreate 和 Created 两个钩子函数之间的函数 也就说在 setup函数中是无法 使用 data 和 methods 中的数据和方法的

2、setup函数是 Composition API(组合API)的入口

3、在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使用

二、setup函数的注意点:

1、由于在执行 setup函数的时候,还没有执行 Created 生命周期方法,所以在 setup 函数中,无法使用 data 和 methods 的变量和方法

2、由于我们不能在 setup函数中使用 data 和 methods,所以 Vue 为了避免我们错误的使用,直接将 setup函数中的this修改成了 undefined

3、setup函数只能是同步的不能是异步的

用法1:结合ref使用

<template>
 <div id="app">
  {{name}}
  <p>{{age}}</p>
  <button @click="plusOne()">+</button>
 </div>
</template>
  
<script>
import {ref} from 'vue'
export default {
 name:'app',
 data(){
  return {
   name:'xiaosan'
  }
 },
 setup(){
  const name =ref('小四')
  const age=ref(18)
  function plusOne(){
   age.value++ //想改变值或获取值 必须.value
  }
  return { //必须返回 模板中才能使用
   name,age,plusOne
  }
 }
}
</script>

用法2:代码分割

Options API 和 Composition API 

Options API 约定:

我们需要在 props 里面设置接收参数

我们需要在 data 里面设置变量

我们需要在 computed 里面设置计算属性

我们需要在 watch 里面设置监听属性

我们需要在 methods 里面设置事件方法

你会发现 Options APi 都约定了我们该在哪个位置做什么事,这反倒在一定程度上也强制我们进行了代码分割。

现在用 Composition API,不再这么约定了,于是乎,代码组织非常灵活,我们的控制代码写在 setup 里面即可。

setup函数提供了两个参数 props和context,重要的是在setup函数里没有了this,在 vue3.0 中,访问他们变成以下形式: this.xxx=》context.xxx

我们没有了 this 上下文,没有了 Options API 的强制代码分离。Composition API 给了我们更加广阔的天地,那么我们更加需要慎重自约起来。

对于复杂的逻辑代码,我们要更加重视起 Composition API 的初心,不要吝啬使用 Composition API 来分离代码,用来切割成各种模块导出。

我们期望是这样的:

importuseAfrom'./a';
importuseBfrom'./b';
importuseCfrom'./c';
exportdefault{
 setup (props) {
 let{ a, methodsA } = useA();
 let{ b, methodsB } = useA();
 let{ c, methodsC } = useC();
 return{
   a,
    methodsA,
    b,
    methodsB,
    c,
    methodsC
  }
 }
}

就算 setup 内容代码量越来越大,但是始终围绕着大而不乱,代码结构清晰的路子前进。

总结

到此这篇关于vue3.0中setup的两种用法的文章就介绍到这了,更多相关vue3.0中setup使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue3.0中setup的两种用法实例

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

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

猜你喜欢
  • vue3.0中setup的两种用法实例
    目录前言一、setup函数的特性以及作用二、setup函数的注意点:用法1:结合ref使用用法2:代码分割总结前言 这篇文章主要介绍了vue3.0中setup使用,本文通过两种用法给...
    99+
    2024-04-02
  • vue3.0中setup中异步转同步的实现
    目录vue3 setup中异步转同步vue3中setup前加上async后页面不显示子组件父组件中需要单独设置使用vue3中的异步vue3 setup中异步转同步 vue3中setu...
    99+
    2024-04-02
  • VUE中filters过滤器的两种用法实例
    目录前言一、全局过滤器全局过滤器之单一挂载全局过滤器之批量挂载二、组件过滤器附:过滤器中传入多个参数总结前言 Vue.js 允许我们自定义过滤器,可被用于一些常见的文本格式化。过滤器...
    99+
    2024-04-02
  • Vue3.0之引入Element-plusui样式的两种方法
    目录第一种:CDN第二种:通过 npm 安装,并希望配合 webpack 使用安装:官网欢迎star:github npm install element-plus --save 第...
    99+
    2024-04-02
  • vue3中setup-script的应用实例
    目录新特性的产生背景内部变量子父级传值总结新特性的产生背景 在了解它怎么用之前,可以先了解一下它被推出的一些背景,可以帮助你对比开发体验上的异同点,以及了解为什么会有这一章节里面的新...
    99+
    2024-04-02
  • java中ArrayList的两种排序方法实例
    目录前言1.ArrayList使用排序的初衷2.对一个ArrayList中的数组进行排序。3.多个ArrayList中的元素进行排序总结前言 由于其功能性和灵活性,ArrayList...
    99+
    2024-04-02
  • vue中setup语法糖写法实例
    目录变量声明父传子子传父变量声明 变量声明定义的时候,不需要返回可以直接使用即可 没有使用setup语法糖时写法 <script> import {useStore} f...
    99+
    2022-12-08
    vue setup语法糖 vue setup vue 语法糖
  • PyTorch使用GPU训练的两种方法实例
    目录Pytorch 使用GPU训练方法一 .cuda()方法二 .to(device)附:一些和GPU有关的基本操作汇总总结Pytorch 使用GPU训练 使用 GPU 训练只需要在...
    99+
    2024-04-02
  • Spring集成MongoDB的两种方法实例
    目录前言一、准备工作1、工程生成2、配置项二、使用MongoTemplate1、创建实体UserInfo2、定义接口3、接口实现4、定义调用controller5、结果三、使用Mon...
    99+
    2024-04-02
  • Android 中Popwindow弹出菜单的两种方法实例
    Android 中Popwindow弹出菜单的两种方法实例 1.popWindow就是对话框的一种方式! 此文讲解的android中对话框的一种使用方式,它叫popWindow...
    99+
    2022-06-06
    菜单 方法 popwindow Android
  • 在python中创建表格的两种方法实例
    目录日常拉呱:创建表格一般有两种方法:一:通过导入xlwt创建二:通过导入csv库来创建1.写入数据2.读取数据总结日常拉呱: 最近在学习爬虫模拟登陆各个软件,老师留有作业,模拟登录...
    99+
    2024-04-02
  • K8s创建资源的两种方法实例
    目录前言kubectl runkubectl kubectl create/applykubectl create 与 kubectl applycreateapply总结前言 在 ...
    99+
    2024-04-02
  • SQL年龄计算的两种方法实例
    目录第一种方法:第二种方法:总结第一种方法: 用DATEDIFF函数,DATEDIFF(YEAR,beginDate,endDate)。 测试语句: DECLARE @birthda...
    99+
    2024-04-02
  • python实现单例的两种方法解读
    目录python 实现单例的方法第一种方法:使用基类第二种方法:使用装饰器python 单例对象单列模式总结python 实现单例的方法 第一种方法:使用基类 New 是真正创建实例...
    99+
    2023-03-02
    python实现单例 python单例 python单例方法
  • Vue3 setup 的作用实例详解
    目录setup 具体怎么用:setup 的数据和方法如何使用?setup 参数setup 特性总结:总结:Vue3中setup函数的作用与实现从 vue2 升级 vue3,vue3 ...
    99+
    2022-12-29
    Vue3 setup 的作用 Vue3 setup
  • Vue3使用icon的两种方式实例
    目录1. 使用svg2. 使用fontAwesome3  来源4 总结技术栈和版本 Vite2 + Vue3 + fontAwesome5 Vue3 中使用Icon的方式,...
    99+
    2024-04-02
  • MySQL单实例重置密码的两种方法
    MySQL单实例重置密码的两种方法在工作学习中,我们有时会忘记数据库的密码,下面是MySQL单实例密码重置的步骤。说明:(1)[root@mysql1 ~]# cat /etc/redhat-release...
    99+
    2024-04-02
  • Pandas修改DataFrame列名的两种方法实例
    目录解决方法1:通过DataFrame.columns类的自身属性修改1. 暴力修改2. stirp 方法3. lambda 表达式解决方法2:通过DataFrame.rename(...
    99+
    2024-04-02
  • echart自适应宽度的两种方法实例
    1.一个页面多个图表的自适应宽度可以用 注意:应写在多个图表的后面,不能一个一个写,会发生错误 //根据窗口的大小变动图表 window.onresize = function()...
    99+
    2022-12-14
    echart宽度自适应 echarts宽度设置 echarts 宽度
  • vue3.0中的watch侦听器实例详解
    目录前言 侦听器和计算属性的区别vue3如何使用watch呢? 基本使用监听多个响应式数据侦听reactive定义的响应式数据 监听reactive定义的响应式数据的某一个属性配置选...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作