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

yizhihongxing

以下是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-cli脚手架中webpack配置方法

    以下是详解vue-cli脚手架中webpack配置方法的完整攻略。 1. 什么是Vue-cli脚手架和Webpack 1.1 Vue-cli脚手架 Vue-cli是Vue.js官方提供的一个包含脚手架工具和预设的完整系统。它可以帮助我们快速搭建Vue.js开发环境、开发模板及Webpack打包工具。 1.2 Webpack Webpack是一款模块化的打包工…

    Vue 2023年5月28日
    00
  • Vue3和Vite不得不说的那些事

    下面是关于“Vue3和Vite不得不说的那些事”的完整攻略。 什么是Vue3和Vite Vue3是Vue.js在2020年9月正式发布的一次重大版本更新,Vue3相较于Vue2来说,带来许多令人激动的新特性,包括Composition API、性能优化等。其中,Composition API是最大的亮点之一,它能够让开发者更好地组织和重用组件逻辑。 Vite…

    Vue 2023年5月28日
    00
  • vue循环数组改变点击文字的颜色

    下面是关于“vue循环数组改变点击文字的颜色”的攻略说明: 1. 绑定class实现循环数组改变点击文字的颜色 在Vue中,我们可以使用v-for指令遍历数组并输出其中的每一个元素。为了实现点击单个元素改变文字颜色,我们可以利用Vue的class绑定特性。 具体步骤如下: 使用v-for指令将数组元素渲染到页面中。 使用v-bind:class指令动态地绑定…

    Vue 2023年5月29日
    00
  • 修改vue+webpack run build的路径方法

    下面是修改vue+webpack run build的路径方法的详细攻略。 1. 理解打包路径 在修改打包路径之前,我们首先需要理解打包路径的概念。在使用vue-cli构建项目时,我们可以通过执行npm run build命令来进行打包,打包后的文件默认会被生成到dist目录下。如果我们需要修改打包后文件的输出路径,那么就需要修改webpack的配置文件。 …

    Vue 2023年5月28日
    00
  • vue时间组件DatePicker组件的手写示例

    下面是关于“vue时间组件DatePicker组件的手写示例”的完整攻略。 1. 了解DatePicker组件 DatePicker组件是一个常用的时间选择组件。通过DatePicker组件,用户可以自定义时间选择的方式,包括选择年月日、时分秒等。 2. 建立DatePicker组件的基础HTML结构 在进行组件的编写之前,我们需要先建立一个基础HTML结构…

    Vue 2023年5月28日
    00
  • vue实现的微信机器人聊天功能案例【附源码下载】

    来讲解一下“vue实现的微信机器人聊天功能案例【附源码下载】”的完整攻略吧。 一、背景 微信机器人是近几年比较热门的技术之一,很多人会用机器人来完成一些简单的自动回答问题的功能。而使用Vue实现微信机器人聊天功能可以为我们提供一个更加简单、便利、美观的方式,同时也可以让我们更加深入的了解Vue框架的使用。 二、准备工作 为了实现该功能,我们需要做以下准备工作…

    Vue 2023年5月27日
    00
  • 解决vue中数据更新视图不更新问题this.$set()方法

    在Vue中,视图会根据组件内数据的变化而自动更新。但有时候我们在操作数据的过程中,因为Vue对于某些类型的数据更新视图不够敏感,而导致视图没有及时更新的问题。解决这个问题的方法是使用Vue的$set()方法。 使用$set()方法 $set()方法是Vue提供的一个全局方法,它可以在Vue实例中动态添加响应式属性。具体用法如下: // 给对象添加响应式属性 …

    Vue 2023年5月29日
    00
  • 面试必备的13道可以举一反三的Vue面试题

    针对“面试必备的13道可以举一反三的Vue面试题”的完整攻略,我将从以下几个方面进行详细讲解: 题目概述 重点知识点 技巧提示 题目概述 这13道可以举一反三的Vue面试题涵盖了Vue中的基础知识点、常用功能及其用法、组件开发、状态管理等多个方面,对于Vue开发工程师的面试来说是非常有参考价值的。 重点知识点 以下是这13道面试题中的重点知识点: Vue实例…

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