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 3.0 前瞻Vue Function API新特性体验

    以下是关于“Vue 3.0 前瞻Vue Function API新特性体验”的详细攻略。 什么是Vue Function API? Vue Function API是指在Vue.js 3.0中引入的一组全新的API,它们的设计目标是更好地解决组件库编写过程中出现的一些问题,如代码的可维护性、组件之间的通信以及更好的类型支持等。Vue Function API…

    Vue 2023年5月28日
    00
  • 浅谈Vuejs Prop基本用法

    浅谈Vuejs Prop基本用法 在Vue.js中,prop是被用来从父组件传递数据到子组件的一个自定义属性。在这篇文章中,我们将会浅略介绍prop的基本用法。 prop的基本语法 使用prop需要在子组件中定义一个props属性,该属性包含一个对象,该对象的每个属性都是我们期望从父组件接收的数据。 例如: <template> <div&…

    Vue 2023年5月27日
    00
  • 几分钟弄懂Vuex的五大属性和使用方式

    来讲解一下“几分钟弄懂Vuex的五大属性和使用方式”的攻略。 1. 什么是Vuex? Vuex是一个专门为Vue.js开发的状态管理模式。它采用集中式存储管理您应用所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 2. Vuex的五大属性 在Vuex中,数据是通过五个核心属性进行管理:state、mutation、getter、action…

    Vue 2023年5月27日
    00
  • vue如何搭建多页面多系统应用

    要搭建多页面多系统应用,我们需要考虑以下几个方面: 如何配置webpack多入口 如何分别打包多个页面 如何创建多个vue实例 如何在不同的页面中加载不同的组件 下面我们逐一讲解: 1. 如何配置webpack多入口 我们可以在webpack.config.js中配置entry来指定多个入口文件,示例代码如下: module.exports = { entr…

    Vue 2023年5月28日
    00
  • 聊聊vue生命周期钩子函数有哪些,分别什么时候触发

    Vue是一种用于构建用户界面的渐进式框架,为方便开发者管理组件状态,Vue提供了一组生命周期钩子函数。 Vue组件生命周期分为创建阶段、更新阶段和销毁阶段三个阶段,每个阶段包含不同的生命周期函数。 创建阶段 在组件创建时,从上到下执行以下生命周期函数:* beforeCreate:此时组件实例刚刚被创建,组件数据对象还没初始化,无法访问任何其他的生命周期函数…

    Vue 2023年5月28日
    00
  • Vue v-text指令简单使用方法示例

    当我们使用Vue来编辑HTML文本内容的时候,有一个重要的指令叫做v-text。这个指令可以将一个变量的值直接渲染到HTML中,而不需要使用双花括号语法。下面是v-text指令的用法说明。 基本语法 v-text指令的基本语法如下: <span v-text="message"></span> 在v-text指令中…

    Vue 2023年5月27日
    00
  • Vue3关于响应式数据类型详解(ref、reactive、toRef、及toRefs)

    Vue 3是Vue.js框架的最新版本,Vue 3对Vue.js响应式系统进行了重构,引入了一些新特性。在Vue 3中,我们可以使用以下概念来定义响应式数据类型:ref、reactive、toRef、toRefs。 ref ref是Vue 3中的一个响应式数据类型,它可以将一个基本类型的值(如字符串、数字、布尔值)封装成一个响应式对象,从而使这个基本类型的值…

    Vue 2023年5月28日
    00
  • Vue金融数字格式化(并保留小数)数字滚动效果实现

    Vue金融数字格式化(并保留小数)数字滚动效果实现是一个在金融、商务等领域中广泛使用的功能。下面我将给出完整的实现攻略。 步骤1:使用Vue.js中的过滤器实现数字格式化 使用Vue.js的过滤器(filter)功能,我们可以将数字按照一定规律进行格式化输出。以下是一个对数字进行千分位分隔和保留两位小数的过滤器示例代码: Vue.filter(‘number…

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