Vue3中unref的寫法代碼示例
在工作學(xué)習(xí)前端的過程中見到了這樣一種寫法,于是我就探究了一下
unref(editForm).open()
1. editForm
- editForm 是通過 ref 創(chuàng)建的響應(yīng)式引用對象。在 Vue 3 里,ref 常被用于創(chuàng)建包含單個(gè)值的響應(yīng)式引用,這個(gè)值可以是基礎(chǔ)類型,也能是對象。在當(dāng)前代碼里,editForm 用于引用 組件實(shí)例。
const editForm = ref()
2. unref
- unref 是 Vue 3 提供的一個(gè)工具函數(shù),其作用是獲取 ref 對象的值。若傳入的參數(shù)是 ref 對象,就返回其內(nèi)部的值;若不是 ref 對象,則直接返回該參數(shù)本身。這一函數(shù)等同于 isRef(val) ? val.value : val。
import { unref } from 'vue'
3. unref(editForm)
- unref(editForm) 會(huì)嘗試獲取 editForm 這個(gè) ref 對象的值,也就是 組件的實(shí)例。若 editForm 并非 ref 對象,就直接返回 editForm 本身。
4. .open()
- .open() 是調(diào)用 組件實(shí)例上的 open 方法。一般而言,這個(gè)方法的作用是打開編輯表單,可能用于新增或者編輯操作。
完整代碼含義
- unref(editForm).open() 整體的作用是獲取 組件的實(shí)例,接著調(diào)用該組件實(shí)例上的 open 方法,以此來打開編輯表單。
代碼示例
- 下面是一個(gè)簡化示例,展示 unref(editForm).open() 的使用方式:
<template>
<BasePage>
<Button @click="add">新增</Button>
<EditForm ref="editForm" />
</BasePage>
</template>
<script setup>
import { ref, unref } from 'vue'
import EditForm from './edit-form.vue'
const editForm = ref()
const add = () => {
// 獲取 EditForm 組件實(shí)例并調(diào)用 open 方法
unref(editForm).open()
}
</script>
注意事項(xiàng)
- 運(yùn)用 unref(editForm).open() 時(shí),要保證 editForm 引用的組件已經(jīng)掛載,并且該組件存在 open 方法,不然就會(huì)引發(fā)運(yùn)行時(shí)錯(cuò)誤??梢栽谡{(diào)用前添加空值檢查,從而避免錯(cuò)誤:
const add = () => {
const formInstance = unref(editForm)
if (formInstance && typeof formInstance.open === 'function') {
formInstance.open()
}
}總結(jié)
到此這篇關(guān)于Vue3中unref寫法的文章就介紹到這了,更多相關(guān)Vue3中unref寫法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解vue-cli項(xiàng)目中的proxyTable跨域問題小結(jié)
這篇文章主要介紹了詳解vue-cli項(xiàng)目中的proxyTable跨域問題小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02
Vue-resource實(shí)現(xiàn)ajax請求和跨域請求示例
本篇文章主要介紹了Vue-resource實(shí)現(xiàn)ajax請求和跨域請求示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
vue點(diǎn)擊按鈕實(shí)現(xiàn)簡單頁面的切換
這篇文章主要為大家詳細(xì)介紹了vue點(diǎn)擊按鈕實(shí)現(xiàn)簡單頁面的切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
postcss-pxtorem設(shè)置不轉(zhuǎn)換UI框架的CSS單位問題
這篇文章主要介紹了postcss-pxtorem設(shè)置不轉(zhuǎn)換UI框架的CSS單位問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
基于Vue?+?Node.js自動(dòng)發(fā)布服務(wù)腳本的完整流程
在當(dāng)今快節(jié)奏的軟件開發(fā)環(huán)境中,前端項(xiàng)目的快速迭代與高效部署成為了提升競爭力的關(guān)鍵,這篇文章主要介紹了基于Vue+Node.js自動(dòng)發(fā)布服務(wù)腳本的完整流程,需要的朋友可以參考下2026-03-03
vue項(xiàng)目打包部署_nginx代理訪問方法詳解
今天小編就為大家分享一篇vue項(xiàng)目打包部署_nginx代理訪問方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
通過GASP讓vue實(shí)現(xiàn)動(dòng)態(tài)效果實(shí)例代碼詳解
GASP是一個(gè)JavaScript動(dòng)畫庫,它支持快速開發(fā)高性能的 Web 動(dòng)畫。GASP 使我們能夠輕松輕松快速的將動(dòng)畫串在一起,來創(chuàng)造一個(gè)高內(nèi)聚的流暢動(dòng)畫序列。這篇文章主要介紹了通過GASP讓vue實(shí)現(xiàn)動(dòng)態(tài)效果,需要的朋友可以參考下2019-11-11
解決Vue2?axios發(fā)請求報(bào)400錯(cuò)誤"Error:?Request?failed?with?s
這篇文章主要給大家介紹了關(guān)于如何解決Vue2?axios發(fā)請求報(bào)400錯(cuò)誤"Error:?Request?failed?with?status?code?400"的相關(guān)資料,在Vue應(yīng)用程序中我們通常會(huì)使用axios作為網(wǎng)絡(luò)請求庫,需要的朋友可以參考下2023-07-07

