首页 > 其他分享 >【Vue】的API风格_选项式API和组合式API

【Vue】的API风格_选项式API和组合式API

时间:2023-06-01 18:47:51浏览次数:34  
标签:组合式 选项 Vue count API 组件

API 风格

API风格可分选项式API和组合式API。

选项是API (Options API)

  • 使用选项式 API,可以用包含多个选项的对象来描述组件的逻辑,例如  data 、 methods  和  mounted  。
  • 选项所定义的属性都会暴露在函数内部的 this 上,它会指向当前的组件实例。
 1 <script>
 2   export default {
 3     data() {
 4       // data() 返回的属性将会成为响应式的状态, 并且暴露在 `this` 上
 5       return {
 6         x: "",
 7         yyy: "",
 8       };
 9     },
10     computed: {}, // 本地取信息,每个页面都要用到的数据,如用户名
11     onl oad() {}, // 根据有无 await 看是否加上 async
12     onShow() {}, // 生命周期钩子会在组件生命周期的各个不同阶段被调用
13     mounted() {},
14     methods: {
15       // methods 是一些用来更改状态与触发更新的函数, 它们可以在模板中作为事件监听器绑定
16       funx() {},
17       funy: function () {},
18     },
19   };
20 </script>

 

 

组合式API (Composition API)

  • 通过组合式 API,我们可以使用导入的 API 函数来描述组件逻辑。
  • 在单文件组件中,组合式 API 通常会与  <script setup>  搭配使用。
  • 这个  setup attribute  是一个标识,告诉 Vue 需要在编译时进行一些处理,让我们可以更简洁地使用组合式 API。
  • 比如, <script setup>  中的导入和顶层变量/函数都能够在模板中直接使用。
 1 <script setup>
 2 import { ref, onMounted } from 'vue'
 3 
 4 // 响应式状态
 5 const count = ref(0)
 6 
 7 // 用来修改状态、触发更新的函数
 8 function increment() {
 9   count.value++
10 }
11 
12 // 生命周期钩子
13 onMounted(() => {
14   console.log(`The initial count is ${count.value}.`)
15 })
16 </script>
17 
18 <template>
19   <button @click="increment">Count is: {{ count }}</button>
20 </template>

 比较

  • 两种 API 风格都能够覆盖大部分的应用场景。它们只是同一个底层系统所提供的两套不同的接口。
  • 实际上,选项式 API 是在组合式 API 的基础上实现的!关于 Vue 的基础概念和知识在它们之间都是通用的。
  • 选项式 API 以“组件实例”的概念为中心 (即上述例子中的 this),对于有面向对象语言背景的用户来说,这通常与基于类的心智模型更为一致。
  • 同时,它将响应性相关的细节抽象出来,并强制按照选项来组织代码,从而对初学者而言更为友好。
  • 组合式 API 的核心思想是直接在函数作用域内定义响应式状态变量,并将从多个函数中得到的状态组合起来处理复杂问题。
  • 这种形式更加自由,也需要你对 Vue 的响应式系统有更深的理解才能高效使用。相应的,它的灵活性也使得组织和重用逻辑的模式变得更加强大。
  • 同一逻辑使用到的不同 变量、方法可以放在一块儿,便于阅读
  • 在生产项目中:
  • 当你不需要使用构建工具,或者打算主要在低复杂度的场景中使用 Vue,例如渐进增强的应用场景,推荐采用选项式 API。
  • 当你打算用 Vue 构建完整的单页应用,推荐采用组合式 API + 单文件组件。

  

标签:组合式,选项,Vue,count,API,组件
From: https://www.cnblogs.com/luyj00436/p/17449885.html

相关文章

  • Collection集合:常用API
         ......
  • vue xlsx组件 导出的excel表头插入内容
    主要就是sheet_add_dom这个方法,dom是带有table标签元素的dom节点。timeData是个二维数组:[["条件1","条件2"],["值1","值2"]];如果是要在表格内容行里面插入内容,可以直接在与表格绑定的对象上,插入内容就可以了。/*timeData是二维数组*/getExcelWithInfo(timeData,dom,tit......
  • 吴恩达教授AI课程:LangChain、扩散模型,用ChatGPT API搭建系统
    家人们,吴恩达教授的AI课程时隔一个月终于又更新了!这次一口气直接推出了三门课,主题包括LangChain、扩散模型,以及用ChatGPTAPI搭建系统。依旧是限时免费,除了扩散模型需要一定知识储备之外,另外两门课新手也能听。有网友为了看完这些课程,直接连觉都不睡了。课程内容这三门课的......
  • vue介绍和基本使用,插值语法,文本指令和事件指令
    1前端的发展史#1HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面->给后端(PHP、Python、Go、Java)->后端嵌入模板语法->后端渲染完数据->返回数据给前端->在浏览器中查看 -javascript=ECMAScript(5,6,13)+Dom+Bom#2Ajax的出现->后台发送异步请求......
  • API接口调用的优势以及获取方式
     API接口调用的优势:简化了系统集成:API接口提供了一种方便、快捷的方式,允许不同的系统之间进行通信和集成,降低了系统集成的难度和复杂度。提供了标准化的接口:API接口通常采用标准化的协议和数据格式,方便不同系统之间进行交换和共享信息。提高了数据安全性:API接口可以......
  • vue2项目中使用dhtmlx gantt甘特图插件
    官网示例地址:https://docs.dhtmlx.com/gantt/samples/可以在这里查看绑定数据的格式安装依赖npminstalldhtmlx-gantt--save创建一个甘特图组件<template><el-scrollbarref="gantt_scrollbar"class="gantt-box"><divref="gantt"class=&qu......
  • vue3实现元素监听滚动事件
    //useScroll.jsimport{debounce}from'@/common/util.js'exportdefaultfunctionuseScroll(elRef){console.log('########3useScroll',elRef.value)letel=windowconstisReachBottom=ref(false)constclientHeight=ref(0......
  • VuePress2.0构建项目文档系统
    VuePress2.0构建项目文档系统参考TerraMours官网。https://terramours.site/文件结构参考:1.修改首页README.md修改项目下的README.md,修改内容:---home:trueheroImage:images/hero.pngheroText:TerraMoursactions:-text:快速开始link:/guide/type:pr......
  • 使用vue的简单的纯前端JS验证码实现
    使用vue的简单的纯前端JS验证码实现感觉人不能在SQL里面淹死,得看看别的东西了因为是上班摸鱼偷摸搞的,所以人比较懒,很多东西也懒得修修改改,直接放在一个html文件下了页面如下js的生成图形逻辑是21年毕业的时候百度CV的,出处是找不到了<!DOCTYPEhtml><htmllang="en"><head......
  • 前后端分离的架构,前端使用Vue2.6.10,后端使用SpringBoot2.0.0的ERP实现
    技术架构技术框架:SpringBoot2.0.0+Mybatis1.3.2+SLF4J1.7+Vue2.6.10+Ant-Design-Vue1.5.2+Mysql5.7+Redis运行环境:jdk8+IntelliJIDEA+maven+宝塔面板本地部署:1.小皮面板创建一个数据库,导入jsh_erp.sql文件至数据库中,该文件在后端程序的docs文件夹下。2.使用......