理解什么是选项API写法,什么是组合API写法

Options API

什么是选项API写法:Options API

  • 在vue2.x项目中使用的就是选项API写法
  • 代码风格:data选项写数据,methods选项写函数...,一个功能逻辑的代码分散
  • 优点:易于学习和使用,写代码的位置已经约定好
  • 缺点:代码组织性差,相似的逻辑代码不便于复用,逻辑复杂代码多了不好阅读
  • 补充:虽然提供mixins用来封装逻辑,但是出现数据函数覆盖的概率很大,不好维护
<template><div class="container"><div>鼠标位置:</div><div>X轴:{{x}}</div><div>Y轴:{{y}}</div><hr><div>{{count}} <button @click="add()">自增</button></div>  </div>
</template>
<script>
export default {name: 'App',data () {return {x: 0,y: 0,count: 0}},mounted() {document.addEventListener('mousemove', this.move)},methods: {move(e) {this.x = e.pageXthis.y = e.pageY},add () {this.count++}    },destroyed() {document.removeEventListener('mousemove', this.move)}
}
</script>

Compositon API

  什么是组合API写法:Composition API

  • 咱们在vue3.0项目中将会使用组合API写法
  • 代码风格:一个功能逻辑的代码组织在一起(包含数据,函数...)
  • 优点:功能逻辑复杂繁多情况下,各个功能逻辑代码组织再一起,便于阅读和维护
  • 缺点:需要有良好的代码组织能力和拆分逻辑能力
  • 补充:为了能让大家较好的过渡到vue3.0的版本来,也支持vue2.x选项API写法
<template><div class="container"><div>鼠标位置:</div><div>X轴:{{x}}</div><div>Y轴:{{y}}</div><hr><div>{{count}} <button @click="add()">自增</button></div>  </div>
</template>
<script>
import { onMounted, onUnmounted, reactive, ref, toRefs } from 'vue'
export default {name: 'App',setup () {// 鼠标移动逻辑const mouse = reactive({x: 0,y: 0})const move = e => {mouse.x = e.pageXmouse.y = e.pageY}onMounted(()=>{document.addEventListener('mousemove',move)})onUnmounted(()=>{document.removeEventListener('mousemove',move)})// 累加逻辑const count = ref(0)const add = () => {count.value ++ }// 返回数据return {...toRefs(mouse),count,add}}
}
</script>

关于vue3的两种API写法——选项API和组合API相关推荐

  1. python 字符编码的两种方式写法:# coding=utf-8和# -*- coding:utf-8 -*-

    python运行文件是总会出现乱码问题,为了解决这个问题,在文件开头加上: # coding=utf-8 或者 # -*- coding:utf-8  -*- # coding=<encodin ...

  2. mysql写什么不同_mysql - 编译配置PHP时,两种配置写法有什么不同

    在编译PHP时, --with-扩展库=DIR --enable-扩展库 这两种配置有什么不同 回复内容: 在编译PHP时, --with-扩展库=DIR --enable-扩展库 这两种配置有什么不 ...

  3. 关于两种指针写法: int* ptr 与 int *ptr的区别

    两种定义方法在使用的结果上没有区别,只是所表达的含义有所不同. int*  ptr 强调 int* 是一种类型----指向int的指针.符合C++编程的习惯. int   *ptr 强调的是 *ptr ...

  4. 将json转为map的两种方式及前后端开发json Api设计规范总结

    一.使用jackson String jsonData = "{\"identifier\":\"18111111111\",\"opTyp ...

  5. spark从hbase读数据到存入hbase数据两种版本写法

    spark2版本: object SparkCoreTest {def main(args: Array[String]): Unit = {// 使用sparksession来创建对象val spa ...

  6. Android获取天气预报的两种方式(国家气象局和中央气象台天气预报API)

    转自:[url]http://blog.csdn.net/aboy123/article/details/9227191[/url]

  7. 在PHP中数组有两种形式区别,PHP三种数组合并方式区别示例

    PHP三种数组合并方式区别示例 PHP数组合并方式主要有三种: 1.+操作符 2.array_merge() 3.array_merge_recursive() 它们的区别主要体现在对于相同键名(数字 ...

  8. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...

  9. python基本判断语句_python两种简洁的条件判断语句写法

    了Python返回真假值(True or False)小技巧,本文探讨的是最简洁的条件判断语句写法,本文给出了两种简洁写法,需要的朋友可以参考下 如下一段代码:def isLen(strString) ...

最新文章

  1. Transformer大升级!谷歌、OpenAI联合推出分层模型,刷榜ImageNet32刷新SOTA
  2. idea 编译java程序_Java,Hello World,《算法》环境搭建中的问题,用 cmd 和 IntelliJ Idea 分别编译和运行 Java 程序...
  3. python 输出“Hello, world”
  4. java基础1--继承
  5. Spark on K8S及history服务部署
  6. 预训练模型真的越大越好吗?听听他们怎么说
  7. 实验7-3-7 字符转换 (15分)
  8. html中显示shell脚本的输出,网页从shell脚本中输入并显示结果
  9. MongoDB学习总结(五) —— 安全认证
  10. [Python] L1-025. 正整数A+B-PAT团体程序设计天梯赛GPLT
  11. 一文搞懂前端对象的深拷贝与浅拷贝
  12. 编码的奥秘之发报机与继电器
  13. python数据库操作sqlite_用Python进行SQLite数据库操作
  14. 药店收费系统服务器,智能药店收费管理系统
  15. 高项_第六章项目进度管理
  16. Pytorch3D环境血泪安装史
  17. 读《创业36条军规》(六)凡事只能靠自己
  18. java arthas使用
  19. SpringBoot-配置actuator
  20. 两种常用的全参考图像质量评价指标——峰值信噪比(PSNR)和结构相似性(SSIM)

热门文章

  1. 《驯服烂代码》第一章
  2. 城市智能照明系统解决方案
  3. Android开发规范文档
  4. 给Krpano小白们的最最最入门级教程(二)
  5. 微信小程序开发收藏经验(一)
  6. 孔子最得意的弟子颜回不幸英年早逝
  7. 安装Zcashd Zcash-cli体验
  8. 【运筹学】线性规划 最优解分析 ( 唯一最优解 | 无穷多最优解 | 无界解 | 无可行解 | 迭代范围 | 求解步骤 )
  9. RDM1 软件需求与开发
  10. 《对不队》团队项目软件系统设计改进