位置: IT常识 - 正文

vue3.0中setup使用(两种用法)(vue set up)

编辑:rootadmin
vue3.0中setup使用(两种用法)

推荐整理分享vue3.0中setup使用(两种用法)(vue set up),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue setup ref,vue3.0的setup()函数,vue3 setup有什么用,vue3 setup作用,vue3 setup script,vue setup ref,vue3.0 setup,vue3.0 setup,内容如对您有帮助,希望把文章链接给更多的朋友!

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

一、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使用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<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

  }

vue3.0中setup使用(两种用法)(vue set up)

 }

}

</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 来分离代码,用来切割成各种模块导出。

我们期望是这样的:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

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 内容代码量越来越大,但是始终围绕着大而不乱,代码结构清晰的路子前进。

本文链接地址:https://www.jiuchutong.com/zhishi/297268.html 转载请保留说明!

上一篇:vue踩坑--background-image路径问题(vue backbone)

下一篇:JavaScript实现留言板(javascript保留字有哪些)

  • 小饭店税务登记证办理流程
  • 济南非税是什么意思
  • 应税劳务销售额税率
  • 使用权资产和租赁负债的计税基础
  • 核定征收企业所得税应税所得率
  • 办公室电话费计入什么科目
  • 金蝶未结账是否可以重新起账
  • 出口退税发票未稽核可以申报退税吗
  • 贸易类公司做产品代理账务如何处理
  • 并购投资的方式有哪些
  • 收到供应商赔偿的违约金
  • 住宿费专票可以报销吗
  • 开票金额大于收款金额如何处理
  • 预支的采购备用金是什么
  • 交通违章罚款有优惠吗
  • 个人开增值税普通发票税率
  • 无票收入应附什么单据
  • 异地作业人员的个税必须在收入地交吗?
  • 福利费税前扣除标准2023
  • 员工报销医药费计入什么费用
  • 当进项大于销项需要做账务处理吗?
  • 公司工会发给职工的福利
  • 原材料入账价值合理损耗
  • 评估资产没有发票和流水怎么办
  • 应交税费待抵扣进项税额是什么科目
  • 当月没有进项税额抵扣怎么办
  • 其他应付款调整到其他应收款
  • 无法划分进项税额包括什么
  • 如何查询苹果手机充电次数
  • phpemail正则
  • 收回应收账款会影响应收账款的账面价值吗
  • 华硕win10笔记本如何恢复出厂设置
  • node-gyp版本
  • 夜晚的地球 (© NASA)
  • 前端常问的面试题
  • 含工资表的会计科目
  • 固定资产清理主要核算什么
  • 每个公司都要交房产税吗
  • 养老保险进账金额
  • 公司银行账号注销需要什么资料
  • python中的装饰器的使用实战
  • 工资和五险一金在公司发,个税在子公司扣
  • python怎么创建
  • 5月份工作重点
  • 审计符合性测试
  • 去年的财务报表网上更正申报
  • 中华人民共和国企业所得税年度纳税申报表
  • 应纳税所得额计入什么科目
  • sqlserver2008安装闪退
  • 租房合同 陷阱
  • 增值税达不到起征期
  • 企业的经营业务
  • 小规模未达到起征点申报表怎么填
  • 公对公打款发票
  • 暂估回冲方式
  • 只有销售才能使你成功的名言
  • 建筑行业的收入做什么科目
  • 银行收的账户管理费
  • 已退货对方不开红字
  • 借方是收入还是支出损益类
  • 长期待摊费用摊销计算公式
  • 一分钟教你
  • win10电脑系统配置
  • unix命令大全
  • 清除桌面应用软件
  • xp系统开机出现英文怎么办
  • win7怎么启用显卡
  • 邮件版本
  • 升级win10之后东西不见了
  • 怎么用root登录
  • unity3ds
  • shader教程
  • 谈谈Jquery ajax中success和complete有哪些不同点
  • [置顶]游戏名 TentacleLocker
  • centos7如何分区
  • [置顶]bilinovel
  • Unity3D&&TexturePacker
  • 江苏电子税务局官网登录入口
  • 上海税务举报邮箱号
  • 税务设备有什么特点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设