位置: 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保留字有哪些)

  • 定期定额自行申报流程
  • 以货换货要开发票吗
  • 公司改名之前发工资吗
  • 购买车辆的保险怎么入账
  • 想开饮品店
  • 销售毛利率算法
  • 发票一定要填数量吗
  • 进项税额转出要补所得税吗
  • 用外购存货投资分录怎么写?
  • 加工费发票怎么做账务处理
  • 企业税审要钱吗
  • 招投标增值税
  • 从事非学历教育的学校提供的教育服务免征增值税吗
  • 怎么通过合并弥补亏损,使得利益最大化?
  • 无形资产摊销可以按照其价值和使用情况
  • 权益净利率计算公式推导
  • 为生产产品而领用材料的实际成本应计入什么账户的借方
  • 插值法求利率计算公式
  • 增值税减少对企业的利弊
  • 应收冲预收是什么意思
  • 华为手机如何用有线耳机
  • 全民游戏盒子怎么卸载
  • 对公账户被诈骗转款728000会怎么样呢
  • 平时发票未上传怎么回事
  • 如何修改自己电脑物理地址
  • vue3.0组件库
  • 固定资产拆除怎么处理
  • 补缴增值税滞纳金天数
  • php integer
  • 现金被盗计入什么科目
  • 什么是坏账,坏账的核算方法有哪些
  • 医院装修设计费用取费标准表
  • 蓬莱德尔塔
  • php solr
  • php示例代码大全
  • 备用金支出没有发票怎么办
  • 苹果cmsv10官网
  • 长期借款的主要缺点
  • 物流货物丢失赔偿按照运费10倍
  • 有限责任公司分类
  • 如何查看sqlserver实例名称
  • 收到退回的以前的快递
  • 民间非营利政府是指什么
  • 以汽车投资作为投资项目
  • 房地产行业增值税预缴
  • 工资社保医保计算
  • 金蝶如何删除结转损益的凭证
  • 餐饮有普通发票吗
  • 营改增问题解答
  • 一次性购买多张火车票
  • SQL Server SQL Agent服务使用教程小结
  • window怎么样
  • win10邮件和日历怎么更新新版outlook
  • win8系统分辨率调不了
  • 苹果电脑支持的u盘格式
  • windows8设置
  • win7网络问题
  • win7开机chkdsk
  • win10预览体验计划不显示
  • Linux分区详解
  • windows7word文档打不开怎么办
  • jQuery Real Person验证码插件防止表单自动提交
  • unity游戏开发的技术路线有哪些
  • dom教程
  • javascript运算
  • android view详解
  • sed查找字符串
  • 分页jsp
  • python爬虫怎么做
  • 用nodejs搭建服务器
  • unity3d2019教程
  • Javascript字符串出现次数
  • 如何用python编写一个程序
  • 标箭头的手机软件
  • 海关快递怎么上门寄件
  • 装卸搬运费属于
  • 境外抵免限额如何申请
  • 个体商户营业额多少万以下免税
  • 海南海葬需要多少费用
  • 山东发票认证勾选平台网址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设