快速入门vue3组合式API

这篇具有很好参考价值的文章主要介绍了快速入门vue3组合式API。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

目录

使用create-vue创建项目

熟悉项目目录和关键文件 

组合式API 

setup选项

setup选项的写法和执行时机

script setup 语法糖

reactive和ref函数

reactive()

ref()

computed

watch

侦听单个数据

侦听多个数据 

immediate 

deep

精确侦听对象的某个属性 

生命周期函数

Vue3的生命周期API (选项式 VS 组合式)

父子通信 

组合式API下的父传子

组合式API下的子传父 

模版引用 

如何使用(以获取dom为例 组件同理)

defineExpose() 


使用create-vue创建项目

1. 前提环境条件
已安装 16.0 或更高版本的 Node.js
node -v
2. 创建一个Vue应用
npm init vue@latest
这一指令将会安装并执行 create-vue

快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

熟悉项目目录和关键文件 

快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

关键文件:
1. vite.config.js - 项目的配置文件 基于vite的配置
2. package.json - 项目包文件 核心依赖项变成了 Vue3.x 和 vite
3. main.js - 入口文件 createApp函数创建应用实例
4. app.vue - 根组件 SFC单文件组件 script - template - style
        变化一:脚本script和模板template顺序调整
        变化二:模板template不再要求唯一根元素
        变化三:脚本script添加setup标识支持组合式API
5. index.html - 单页入口 提供id为app的挂载点

组合式API 

setup选项

setup选项的写法和执行时机

快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言    快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

1. 执行时机,比beforeCreate还要早

2. setup函数中,获取不到this (this是undefined)

<script> 
// setup
// 1. 执行时机,比beforeCreate还要早
// 2. setup函数中,获取不到this (this是undefined)
export default {
  setup () {
    console.log('setup函数',this)
  },
  beforeCreate () {
    console.log('beforeCreate函数')
  }
}
</script>

网页显示为:                                                 快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

3. 数据 和 函数,需要在 setup 最后 return,才能模板中应用

<script> 
export default {
  setup () {
    // 数据
    const message = 'hello Vue3'
    // 函数
    const logMessage = () => {
      console.log(message)
    }
    return {
      message,
      logMessage
    }
  }
}
</script>

<template>
  <div>{{ message }}</div>
  <button @click="logMessage">按钮</button>
</template>

script setup 语法糖

问题:每次都要return,好麻烦?

4. 通过 setup 语法糖简化代码

快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

<script setup>
const message = 'this is a message'
const logMessage = () => {
  console.log(message)
}
</script>

<template>
  <div>{{ message }}</div>
  <button @click="logMessage">按钮</button>
</template>

reactive和ref函数

reactive()

作用: 接受 对象类型数据的参数传入 并返回一个 响应式的对象
核心步骤:
快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言
1. 从 vue 包中 导入 reactive 函数
2. 在 <script setup> 中 执行 reactive 函数 并传入 类型为对象 的初始值,并使用变量接收返回值
<script setup>
//1. reactive: 接收一个对象类型的数据,返回一个响应式的对象
import { reactive } from 'vue'
const state = reactive({
  count: 100
})
const setCount = () => {
  state.count++
}

</script>

<template>
  <div>
    <div>{{ state.count }}</div>
    <button @click="setCount">+1</button>
  </div>
</template>

ref()

作用: 接收 简单类型或者对象类型的数据 传入 并返回一个 响应式的对象

本质:是在原有传入数据的基础上,外层包了一层对象,包成了复杂类型

           底层,包成复杂类型之后,再借助 reactive 实现的响应式

注意点:

           1. 脚本中访问数据,需要通过 .value

           2. 在template中,.value不需要加 (帮我们扒了一层)

核心步骤:

快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

1. 从 vue 包中 导入 ref 函数
2. 在 <script setup> 中 执行 ref 函数 并传入初始值,使用 变量接收 ref 函数的返回值
<script setup>
import { ref } from 'vue'
const count = ref(0)
const setCount = () => {
  count.value++
}
</script>

<template>
  <div>
    <div>{{ count }}</div>
    <button @click="setCount">+1</button>
  </div>
</template>

computed

计算属性基本思想和Vue2的完全一致, 组合式API下的计算属性 只是修改了写法
核心步骤:1. 导入 computed函数
2. 执行函数 在回调参数中 return基于响应式数据做计算的值 ,用 变量接收 快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言
<script setup>
import{computed,ref}from 'vue'
const list=ref([1,2,3,4,5,6,7,8])
const computedList = computed(()=>{
  return list.value.filter(item=>item>2)
})
</script>

<template>
  <div>
    <div>原始数据: {{ list }}</div>
    <div>计算后的数据: {{ computedList }}</div>
  </div>
</template>a

watch

作用: 侦听 一个或者多个数据 的变化,数据变化时执行回调函数
俩个额外参数:1. immediate(立即执行) 2. deep(深度侦听)

侦听单个数据

1. 导入watch 函数
2. 执行watch函数 传入要侦听的响应式数据 (ref对象) 和回调函数 快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

侦听多个数据 

同时侦听多个响应式数据的变化, 不管哪个数据变化都需要执行回调 快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

immediate 

在侦听器创建时立即触发回调, 响应式数据变化之后继续执行回调快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

deep

通过watch监听的ref对象默认是 浅层侦听的,直接修改嵌套的对象属性不会触发回调执行 ,需要开启deep选项 快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言
<script setup>
import{watch,ref}from 'vue'
// 4. deep 深度监视, 默认 watch 进行的是 浅层监视
//    const ref1 = ref(简单类型) 可以直接监视
//    const ref2 = ref(复杂类型) 监视不到复杂类型内部数据的变化
const userInfo = ref({
  name: 'zs',
  age: 18
})
const setUserInfo = () => {
  // 修改了 userInfo.value 修改了对象的地址,才能监视到
  // userInfo.value = { name: 'ls', age: 50 }
  userInfo.value.age++
}

// deep 深度监视
watch(userInfo, (newValue) => {
  console.log(newValue)
}, {
  deep: true
})
</script>

<template>
  <div>{{ userInfo }}</div>
  <button @click="setUserInfo">修改userInfo</button>
</template>a

精确侦听对象的某个属性 

在不开启deep的前提下,侦听age的变化,只有age变化时才执行回调
<script setup>
import{watch,ref}from 'vue'
// 4. deep 深度监视, 默认 watch 进行的是 浅层监视
//    const ref1 = ref(简单类型) 可以直接监视
//    const ref2 = ref(复杂类型) 监视不到复杂类型内部数据的变化
const userInfo = ref({
  name: 'zs',
  age: 18
})
const setUserInfo = () => {
  // 修改了 userInfo.value 修改了对象的地址,才能监视到
  // userInfo.value = { name: 'ls', age: 50 }
  userInfo.value.age++
}

// 5. 对于对象中的单个属性,进行监视
watch(() => userInfo.value.age, (newValue, oldValue) => {
  console.log(newValue, oldValue)
})
</script>

<template>
  <div>{{ userInfo }}</div>
  <button @click="setUserInfo">修改userInfo</button>
</template>

生命周期函数

Vue3的生命周期API (选项式 VS 组合式)

快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

父子通信 

组合式API下的父传子

基本思想
1. 父组件中给 子组件绑定属性
2. 子组件内部通过 props选项接收
快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言
defineProps 原理:就是编译阶段的一个标识,实际编译器解析时,遇到后会进行编译转换

组合式API下的子传父 

基本思想
1. 父组件中给 子组件标签通过@绑定事件
2. 子组件内部通过 emit 方法触发事件
快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

模版引用 

如何使用(以获取dom为例 组件同理)

通过ref标识获取真实的dom对象或者组件实例对象文章来源地址https://www.toymoban.com/news/detail-650939.html

1. 调用ref函数生成一个ref对象
2. 通过ref标识绑定ref对象到标签
快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

defineExpose() 

默认情况下在<script setup>语法糖下 组件内部的属性和方法是不开放 给父组件访问的,
可以通过defineExpose编译宏 指定哪些属性和方法允许访问 快速入门vue3组合式API,# 前端vue入门,javascript,vue.js,前端,前端框架,开发语言

到了这里,关于快速入门vue3组合式API的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Vue3】如何创建Vue3项目及组合式API

    文章目录 前言 一、如何创建vue3项目? ①使用 vue-cli 创建  ②使用可视化ui创建  ③npm init vite-app   ④npm init vue@latest 二、 API 风格 2.1 选项式 API (Options API) 2.2 组合式 API (Composition API) 总结 例如:随着前端领域的不断发展,vue3学习这门技术也越来越重要,很多人都开启了学习

    2024年02月03日
    浏览(43)
  • vue3 组合式 api 单文件组件写法

    Vue3 中的 Composition API 是一种新的编写组件逻辑的方式,它提供了更好的代码组织、类型推导、测试支持和复用性。相比于 Vue2 的 Options API,Composition API 更加灵活和可扩展。 在 Composition API 中,我们使用 setup 函数来定义组件的逻辑部分。setup 函数是一个特殊的函数,在创建组

    2024年02月12日
    浏览(28)
  • vue3组合式api单文件组件写法

    一,模板部分  二,js逻辑部分 

    2024年02月13日
    浏览(37)
  • 带你了解vue3组合式api基本写法

    本文的目的,是为了让已经有 Vue2 开发经验的 人 ,快速掌握 Vue3 的写法。 因此, 本篇假定你已经掌握 Vue 的核心内容 ,只为你介绍编写 Vue3 代码,需要了解的内容。 一、Vue3 里 script 的三种写法 首先,Vue3 新增了一个叫做组合式 api 的东西,英文名叫 Composition API。因此 Vu

    2024年02月01日
    浏览(72)
  • vue3:7、组合式API-watch

     

    2024年02月09日
    浏览(33)
  • Vue3: 选项式API和组合式API的优缺点

    Vue框架提供了两种不同的API风格来编写组件,分别是 选项式API 和 组合式API 。 一.选项式API: 选项式API是vue2.x版本中默认使用的API风格,它是基 于对象的方式 来描述组件的行为和状态的。选项式API需要在Vue组件的选项对象中声明组件的属性和方法,如data、methods、computed、

    2024年02月09日
    浏览(35)
  • vue3 组合式api中 ref 和$parent 的使用

    ref 的使用 vue3中, 在 组件中添加一个 component ref=“xxx” ,就可以在父组件中得到 子组件的 dom 对象, 以及 虚拟的 dom 对象, 有了虚拟 dom, 我们就可以在父组件中控制子组件的显示了 ref 的使用方法 vue3中ref 的特点 以上如果在vue2中,就可以使用 子组件的对象来改变子组件的

    2024年02月10日
    浏览(34)
  • Vue3的组合式API中如何使用provide/inject?

    听说 Vue 3 加入了超多酷炫的新功能,比如组合式 API 等等。今天我们就来聊聊 Vue 3 中的组合式 API,并且如何使用 provide/inject 来搞定它! 首先,我们来了解一下组合式 API 是什么。其实,组合式 API 就是一个用来构建和组合函数的工具,它能让我们的代码更加简洁、可读性更

    2024年02月11日
    浏览(35)
  • 【vue3.0 组合式API与选项式API是什么,有什么区别】

    Vue3.0中引入了组合式API(Composition API),同时保留了选项式API(Options API)。两种 API 风格都能够覆盖大部分的应用场景。它们只是同一个底层系统所提供的两套不同的接口。实际上,选项式 API 是在组合式 API 的基础上实现的!关于 Vue 的基础概念和知识在它们之间都是通用的

    2024年02月10日
    浏览(31)
  • Vue3:Typescript与组合式API、defineProps、defineEmits等使用

    使用 defineProps() 使用 script setup 在使用 script setup 时, defineProps() 宏函数支持从它的参数中推导类型: 运行时声明 基于类型的声明 注意:接口或对象字面类型可以包含从其他文件导入的类型引用,但是,传递给 defineProps 的泛型参数本身不能是一个导入的类型, 这是因为Vue

    2023年04月20日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包