Steps for Vue to use Ref to get components across levels

Steps for Vue to use Ref to get components across levels

Vue uses Ref to get component instances across levels

Example Introduction

During the development process, we will inevitably use cross-level ref instance acquisition. In most cases, we can find the required instance through the component's own parent or children . However, when the hierarchy is unclear or too deep, this method is inevitably cumbersome and inefficient.

As shown in the figure below, we use組件E to obtain the component instance of組件D

Document directory structure

There are six components, namely A, B, C, D, E and index, and they are inserted into their respective pages in the order of the components in the above figure.

The page style is as follows:

Install vue-ref

Download vue-ref

npm install vue-ref --save

Global Registration

import ref from 'vue-ref'
Vue.use(ref)

How to use

<!-- vm.dom will be the DOM node -->
<p v-ref="c => this.dom = c">hello</p>

<!-- vm.child will be the child component instance -->
<child-component v-ref="c => this.child = c"></child-component>

<span v-for="n in 10" :key="n" v-ref="(c, key) => {...}">{{ n }} </span>

Root component custom method [using provide and inject]

In our index page, we provide three methods:

  • Set the instance of the child component, setChildrenRef
  • Get from component instance, getChildrenRef
  • Get the current node instance, getRef
provide() {
  return {
   setChildrenRef: (name, ref) => {
    this[name] = ref
   },
   getChildrenRef: name => {
    return this[name]
   },
   getRef: () => {
    return this
   }
  }
 },

Describe each page separately

Component A page:

Get the setChildrenRef method through the injection method, and cache component D through the above instructions

Component B page:

Component C page:

Component D page:

Component E page:

In this page, we not only inject two methods, but also set a method to switch the color of component D to test whether we have really obtained the instance of component D across levels.

result

As you can see, the three parent instances are the same, and the text style of component D is successfully modified in component E. good!

The above is the details of the steps for Vue to use Ref to obtain components across levels. For more information about Vue using Ref to obtain components, please pay attention to other related articles on 123WORDPRESS.COM!

You may also be interested in:
  • In-depth explanation of Vue multi-select list component
  • Problems and solutions encountered when using v-model to two-way bind the values ​​of parent-child components in Vue
  • Vue example code using transition component animation effect
  • Summary of Vue component basics
  • In-depth understanding of Vue dynamic components and asynchronous components
  • Vue implements multi-tab component
  • Easily implement the whole process of switch function components in vue3
  • How to customize dialog and modal components in Vue3
  • Correct way to force component to re-render in Vue
  • Two ways to dynamically create components in Vue
  • Detailed explanation of incompatible changes of components in vue3

<<:  Installation tutorial of the latest stable version of MySQL 5.7.17 under Linux

>>:  mysql5.7 create user authorization delete user revoke authorization

Recommend

MySQL whole table encryption solution keyring_file detailed explanation

illustrate MySql Community Edition supports table...

Solution to the problem of adaptive height and width of css display table

Definition and Usage The display property specifi...

Sequence implementation method based on MySQL

The team replaced the new frame. All new business...

Ubuntu installation cuda10.1 driver implementation steps

1. Download cuda10.1: NVIDIA official website lin...

Example code for implementing simple ListViews effect in html

HTML to achieve simple ListViews effect Result: c...

Copy and paste is the enemy of packaging

Before talking about OO, design patterns, and the ...

Practical way to build selenium grid distributed environment with docker

Recently, I needed to test the zoom video confere...

Vue implements an Input component that gets the key display shortcut key effect

I encountered a requirement to customize shortcut...

Example code for implementing div concave corner style with css

In normal development, we usually use convex roun...

The whole process of node.js using express to automatically build the project

1. Install the express library and generator Open...

MySQL 5.7 and above version download and installation graphic tutorial

1. Download 1. MySQL official website download ad...

Detailed description of component-based front-end development process

Background <br />Students who work on the fr...

Basic understanding and use of HTML select option

Detailed explanation of HTML (select option) in ja...