首页 > 其他分享 >Vue2和Vue3区别的理解和学习1-API结构

Vue2和Vue3区别的理解和学习1-API结构

时间:2024-07-08 22:26:13浏览次数:16  
标签:count 组合式 函数 API Vue2 Vue3 组件 addCount

API结构

Vue 2采用选项式API,包括data、methods、mounted等,而Vue 3则引入了组合式API,主要使用setup函数。这种变化使得代码组织更加模块化,更易于复用和维护。

选项式 API (Options API)

包含多个选项的对象来描述组件的逻辑。选项所定义的属性都会暴露在函数内部的 this 上,它会指向当前的组件实例。··

<template>
  <div>
    <button @click="addCount">addCount</button>
    <p>{{ count }}</p>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        count: 0
      }
    },
    methods: {
      addCount() {
        this.count++
      }
    },
    updated() {
      console.log(`The initial count is ${this.count}.`)
    }
  }
</script>

组合式 API (Composition API)

使用导入的 API 函数来描述组件逻辑。在单文件组件中,组合式 API 通常会与<script setup>搭配使用。这个 setup attribute 是一个标识,告诉 Vue 需要在编译时进行一些处理,让我们可以更简洁地使用组合式 API。

<template>
  <div>
    <button @click="addCount">addCount</button>
    <p>{{ count }}</p>
  </div>
</template>
<script setup>
  import { ref, onUpdated } from 'vue'
  const count = ref(0)
  function addCount() {
    count.value++
  }
  onUpdated(() => {
    console.log(`The initial count is ${count.value}.`)
  })
</script>

总结

选项式API使用基于类的写法,而组合式API更接近于现代JavaScript开发实践,可以更容易地使用现代JavaScript特性,如函数组件、响应性系统等。

组合式 API 的主要优点包括:
1.状态逻辑可复用:你可以把组件的状态和逻辑抽象成一个可复用的函数。
2.更好的类型支持:使用组合式 API 时,TypeScript 可以更好地推断出类型。
3.更好的测试体验:单独的函数使得测试更加简单,可以更容易地测试每个逻辑块。
4.更好的性能:不会进行多余的响应式跟踪,因为它只在你明确声明时才会跟踪。

标签:count,组合式,函数,API,Vue2,Vue3,组件,addCount
From: https://blog.csdn.net/weixin_54092687/article/details/140159141

相关文章

  • Vue2和Vue3区别的理解和学习4-模板和语法
    Vue2和Vue3区别的理解和学习4-模板和语法组件定义//vue2exportdefault{data(){return{count:0}},methods:{increment(){this.count++}}}vue3---jsimport{ref}from'vue'expo......
  • Vue3 如何接入 i18n 实现国际化多语言
    1.基本方法在Vue.js3中实现网页的国际化多语言,最常用的包是vue-i18n,通常我们会与vue-i18n-routing一起使用。vue-i18n负责根据当前页面的语言渲染文本占位符,例如:<span>{{t('Login')}}</span>当语言设置为中文时,会将Login渲染为“登录”。vue-i18n-routing负责......
  • 2024已过半,还没试过在vue3中使用ioc容器吗?
    Vue3已经非常强大和灵活了,为什么还要引入IOC容器呢?IOC容器离不开Class,那么我们就从Class谈起Class的应用场景一提起Class,大家一定会想到这是Vue官方不再推荐的代码范式。其实,更确切的说,Vue官方是不推荐基于Class来定义Vue组件。如图所示:社区确实有几款基于Clas......
  • vue3 watch使用方式,如何监听reactive子属性 ref数据等
    代码<template><divclass="box">childB</div></template><scriptlang="ts"setup>import{reactive,watch,ref}from"vue";constdata1=reactive({msg:"childB",abc:"sl......
  • vue3 defineEmits 使用
    概论defineEmits用来定义子组件暴漏给父组件的自定义事件测试代码子组件<template><divclass="box">child</div></template><scriptlang="ts"setup>interfaceEmit{(e:"emitfn1",data:Array<number>):void;......
  • ollama api generate 和 api chat 的区别
    /api/chat和/api/generate这两个API端点的主要区别在于它们的设计目的和处理上下文的方式: /api/generate用途:这个端点主要用于生成单个文本片段。它接收输入并返回基于该输入的模型生成的文本,通常不考虑之前的消息历史或对话上下文。功能:它可以用于各种生成任务,如文章......
  • vk-data-goods-sku-popup uniapp vue3示例
    效果图组件简介vk-data-goods-sku-popup是一个uniapp上面方便好用的sku组件,使用场景包括但不限于商品详情页、购物车页面、订单结算页、搜索结果页下面就上代码了,完整vue页面的代码如下<scriptsetup>import{ref,defineEmits,defineProps,computed}from'vue'//显示......
  • Apispec,一个用于生成 OpenAPI(Swagger)规范的 Python 库
    目录01什么是Apispec?          为什么选择Apispec?安装与配置02Apispec的基本用法        生成简单的API文档1、创建Apispec实例2、定义API路由和视图3、添加路径到Apispec集成Flask和Apispec1、安装Flask和Flask-......
  • 前端面试题28(Vue3的Teleport功能在什么场景下特别有用?能给个例子吗?)
    Vue3的Teleport功能在需要将组件的渲染结果放置在DOM树中与当前组件位置无关的任意位置时特别有用。这通常涉及到需要将某些UI元素(如模态框、弹出菜单、通知、工具提示等)从其逻辑上的父级组件中“提取”出来,放置到页面的更高层级或完全不同的位置,以避免样式冲突或层......
  • 前端面试题27(在实际项目中,如何有效地利用Vue3的响应式系统提高性能?)
    在实际项目中,有效利用Vue3的响应式系统提高性能主要涉及以下几个关键点:1.合理使用reactive和refreactive:用于将复杂的数据结构(如对象或数组)转换成响应式版本。确保只将需要实时更新的数据结构声明为响应式,避免不必要的全局响应化,以减少性能开销。ref:用于创建基本类型......