Vue中ref、reactive、toRef、toRefs、$refs的基本用法总结

以下是Vue中ref、reactive、toRef、toRefs、$refs的完整攻略:

1. ref

ref 可以将组件或DOM元素在父组件中进行标识。同时,也可以在父组件中使用 $refs 访问到子组件或DOM元素。使用ref的方式如下:

<template>
  <div>
    <input type="text" ref="input" />
  </div>
</template>

在组件中,通过this.$refs.input就能获取到该dom节点。

2. reactive

reactive可以定义响应式数据,这样我们可以使用解构赋值或之前的方法去引用响应式属性。

import { reactive } from "vue";

const state = reactive({
  count: 0,
  width: 500,
  height: 300,
});

3. toRefs

如果我们想将 reactive 中的响应式属性进行分解成独立的属性,toRefs 就能够将 reactive 对象中的所有属性都变成了 ref 数据类型的变量。

import { reactive, toRefs } from "vue";

const state = reactive({
  count: 0,
  width: 500,
  height: 300,
});

// 将响应式属性转化为单一的 Refs
const stateRefs = toRefs(state);

toRefs 可以使 state 变成响应式的同时,将 reactive 对象变成了普通对象,从而让其属性能够被直接解构。

const App = {
  setup() {
    const { count, width, height } = toRefs(reactive({
      count: 0,
      width: 500,
      height: 300
    }))

    // ...

4. toRef

toRef允许我们在reactive学习中使用单一的响应式属性。

import { reactive, toRef } from "vue";

const state = reactive({
  count: 0,
});

// 将count属性从响应式中转化为单一的 Ref
const countRef = toRef(state, "count");

这样我们就可以通过 countRef 操作 count 这个响应式数据。

5. $refs

$refs 是用于获取子组件或DOM元素的引用。它是Vue自带的一个属性,可以在组件中通过 ref 属性定义DOM元素或子组件实例,进而在组件中方便地进行引用。

下面是一个例子:

<template>
  <div>
    <button ref="button">点击</button>
  </div>
</template>

<script>
  export default {
    mounted() {
      this.$refs.button.addEventListener("click", () => {
        console.log("clicked");
      });
    }
  }
</script>

在上述代码中,我们在 template 中定义了一个 button 元素,使用 ref="button" 给它起了个名字,随后在 mounted() 生命周期钩子函数中,通过 this.$refs.button 获取到了这个元素,并添加了一个监听事件,当点击 button 元素时会输出clicked。

至此,Vue中ref、reactive、toRef、toRefs、$refs的基本用法总结已经介绍完毕。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue中ref、reactive、toRef、toRefs、$refs的基本用法总结 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue组件文档(.md)中如何自动导入示例(.vue)详解

    要在Vue组件文档(.md)中自动导入示例(.vue),需要安装vue-styleguidist这个插件。接下来,我们以vue-cli3创建的项目为例,来讲解如何实现自动导入示例。 第一步:安装vue-styleguidist插件 首先,在项目根目录下使用npm命令行安装vue-styleguidist插件。 npm install vue-stylegui…

    Vue 2023年5月28日
    00
  • VSCode创建Vue项目的完整步骤教程

    下面是创建Vue项目的完整步骤教程: 准备工作 首先,你需要安装一些软件,包括: Node.js(可以在官网上下载安装包) Visual Studio Code(可以在官网上下载安装包) 安装好Node.js后,你可以在命令行界面输入以下命令,查看其版本号,以确认是否安装成功: node -v 安装好Visual Studio Code后,你需要安装Vue.…

    Vue 2023年5月27日
    00
  • vue组件入门知识全梳理

    Vue 组件入门知识全梳理 什么是 Vue 组件? 在 Vue 中,组件可以理解为独立的可复用的代码块,它可以将一些具有相同或类似功能的代码组织在一起,使其可以被反复使用。 组件具有自己的属性和行为,可以像 HTML 标签一样在模板中使用。每个组件都是一个独立的实例,因此可以用不同的参数和数据来渲染同一个组件。 创建组件 在 Vue 中,可以通过 Vue.c…

    Vue 2023年5月28日
    00
  • Vue 获取数组键名的方法

    Vue 获取数组键名的方法主要有两种,分别是使用v-for循环数组时获取索引值与使用Object.keys()方法获取数组键名。 使用v-for获取数组索引值 在使用v-for循环渲染数组时可以通过指定两个参数来获取数组中每个元素的值和对应的索引值,通过获取索引值就可以获取数组的键名。示例代码如下: <ul> <li v-for=&quot…

    Vue 2023年5月28日
    00
  • 从零撸一个pc端vue的ui组件库( 计数器组件 )

    下面详细讲解从零撸一个 PC 端 Vue 的 UI 组件库(计数器组件)的完整攻略,包括如下步骤: 1. 创建项目 首先需要在本地创建一个 Vue 项目,执行以下命令: vue create my-component-library 项目创建完成后,进入项目目录并运行: cd my-component-library npm run serve 浏览器中打开…

    Vue 2023年5月27日
    00
  • swiper.js插件实现pc端文本上下滑动功能示例

    首先,Swiper.js是一个基于jQuery的非常流行的移动端原生js滑动插件,主要用于实现轮播图等移动端滑动交互场景。 但是,Swiper.js插件同样支持PC端文本上下滑动功能,下面我们来讲解如何使用它来实现这一功能。 1.引入Swiper.js文件要使用Swiper.js插件,首先需要在页面中引入Swiper的js和css文件,这两个文件可以通过cd…

    Vue 2023年5月28日
    00
  • vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)

    Vue.js中的自定义指令是一种非常重要的扩展机制,可以实现在标准DOM元素上添加额外的行为,从而实现更加强大的功能。 Vue.js提供了两种自定义指令的实现方法,一种是内部自定义指令,一种是全局自定义指令。下面将详细讲解如何使用Directive实现这两种自定义指令。 内部自定义指令 内部自定义指令是指在Vue.js组件的template中定义的指令,在组…

    Vue 2023年5月28日
    00
  • vue3常用响应式对象的api,你全用过了吗

    下面是关于Vue3常用响应式对象的API的完整攻略。 Vue3常用响应式对象的API ref ref 是 Vue3 中创建响应式数据的函数。可以用来包装基本类型的数据,例如数字、字符串等。ref 函数返回一个具有 value 属性的对象,该属性的值为传入的初始值,并且它是响应式的。 示例1: import { ref, reactive } from ‘vu…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部