Inhaltsverzeichnis
toRaw()函数
markRaw()函数
总结
toRaw()-Funktion
markRaw()-Funktion
Zusammenfassung
Heim Web-Frontend View.js Vue-Funktionsvergleich: Verwendung von toRaw() und markRaw()

Vue-Funktionsvergleich: Verwendung von toRaw() und markRaw()

Apr 07, 2023 pm 08:20 PM
vue javascript

Dieser Artikel wird Ihnen helfen, die Vue-Funktion zu erlernen und die Funktionen toRaw und markRaw in vueJs zu vergleichen. Ich hoffe, er wird Ihnen hilfreich sein!

Vue-Funktionsvergleich: Verwendung von toRaw() und markRaw()

Für einige spezielle Anforderungen ist es im Projekt erforderlich, die Reaktionsdaten in gewöhnliche Daten vom primitiven Typ umzuwandeln. Diese Situation besteht.

In Vue können Sie Daten vom normalen Datentyp in reaktionsfähige Daten umwandeln. Gleichzeitig können Sie Daten vom reaktionsfähigen Typ in Daten vom normalen Typ umwandeln. Vue里,能够将普通数据类型的数据变为响应式数据;同时,也能将响应式类型数据变为普通类型数据

可以用于提升数据的性能

toRaw()函数

接收一个reactive响应式数据,将一个响应式的数据变为普通类型的数据,转化为非响应式数据,相当于还原对象,reactive相当于制作,但对于ref响应式数据不起作用。【相关推荐:vuejs视频教程web前端开发

将一个由reactive生成的响应式对象转为普通(原始)对象

toRaw()可以返回由reactive()readonly()shallowReactive()shallowReadonly()创建的代理对应的原始对象

这是一个可以用临时读取而不引起代理访问/跟踪开销,或是写入而不触发更改的特殊方法,在官方文档里,是不建议保存对原始对象的持久引用

使用场景:用于读取响应式对象的普通对象,对这个普通对象的所有操作,不会引起页面的更新

const foo = {}
const reactiveFoo = reactive(foo)

console.log(toRaw(reactiveFoo) === foo)  // true
Nach dem Login kopieren

注意

针对对象,后续动态新增的属性,如果没有把整个对象对外暴露出去,模板中使用新增的变量是不生效的(针对setup函数形式)

markRaw()函数

接收一个原始数据,标记一个对象,使它永远不会再成为响应式对象,也就是数据在逻辑中即使修改变化了,但是页面不会更新变化

将一个对象标记为不可被转为代理,返回该对象本身

应用场景:

[1]. 有些值不应该被设置为响应式的,例如复杂的第三方类库或Vue组件对象

[2]. 当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能

const foo = markRaw({})
console.log(isReactive(reactive(foo))) // false

// 也适用于嵌套在其他响应性对象
const bar = reactive({ foo })
console.log(isReactive(bar.foo)) // false
Nach dem Login kopieren

markRaw()shallowReactive()这样浅层式API使你可以有选择的避开默认的深度响应/只读转换,并在状态关系谱中嵌入原始,非代理的对象

如果把一个嵌套的,没有标记的原始对象设置成一个响应式对象,然后再次访问它,你获取到的是代理的版本,这可能会导致对象身份风险

即执行一个依赖于对象身份的操作,但却同时使用了同一对象的原始版本和代理版本

const foo = markRaw({
  nested: {}
})

const bar = reactive({
  // 尽管 `foo` 被标记为了原始对象,但 foo.nested 却没有
  nested: foo.nested
})

console.log(foo.nested === bar.nested) // false
Nach dem Login kopieren

总结

ref()reactive()是将一个非响应式类型数据变为响应式数据,而toRaw()markRaw()相当于是对响应式数据的还原,将一个响应式数据变为非响应式数据

toRaw只针对响应式对象类型的数据起作用,如果涉及到将一个响应式数据转变为非响应式数据,只用于纯数据的渲染,不引起页面的更新,就可以使用toRawmarkRaw()

Kann zur Verbesserung der Datenleistung verwendet werden

toRaw()-Funktion

empfängt reaktionsfähige reaktive Daten, wandelt reaktionsfähige Daten in einen allgemeinen Datentyp um und konvertiert sie in Nicht reagierende Daten entsprechen der Wiederherstellung von Objekten und reactive entspricht der Produktion, funktioniert jedoch nicht für ref reaktionsfähige Daten. [Verwandte Empfehlungen: vuejs-Video-Tutorial

, Web-Frontend-EntwicklungKonvertieren Sie ein von reactive generiertes responsives Objekt in ein normales (Roh-)Objekt

toRaw() kann von reactive(), readonly(), shallowReactive() zurückgegeben werden code >Oder das Originalobjekt, das dem von <code>shallowReadonly()erstellten Proxy entspricht. 🎜🎜Dies ist eine spezielle Methode, die zum vorübergehenden Lesen verwendet werden kann, ohne dass Proxy-Zugriff/Tracking-Overhead anfällt, oder zum Schreiben, ohne Änderungen auszulösen. In der offiziellen Dokumentation wird nicht empfohlen, einen dauerhaften Verweis auf das Originalobjekt zu speichern🎜🎜Verwendungsszenario: Ein gemeinsames Objekt, das zum Lesen reaktionsfähiger Objekte verwendet wird. Alle Vorgänge an diesem gemeinsamen Objekt lösen die Seite nicht aus Update 🎜rrreee🎜Hinweis🎜🎜Bei Objekten sind nachfolgende dynamisch hinzugefügte Attribute nicht wirksam, wenn das gesamte Objekt nicht der Außenwelt ausgesetzt ist (für setup-Funktionsform)🎜

markRaw()-Funktion

🎜Empfängt Rohdaten und markiert ein Objekt, sodass es nie wieder zu einem reaktiven Objekt wird In der Logik geändert, wird die Seite nicht als nicht in einen Proxy konvertiert markiert und das Objekt selbst zurückgegeben: 🎜🎜[1] reaktiv eingestellt werden, wie z. B. komplexe Bibliotheken von Drittanbietern oder Vue-Komponentenobjekte🎜🎜[2]. Beim Rendern einer großen Liste mit einer unveränderlichen Datenquelle kann die reaktive Konvertierung die Leistung verbessern 🎜rrreee🎜markRaw() und shallowReactive() Eine solche flache API ermöglicht es Ihnen, selektiv die standardmäßige tiefe reaktive/schreibgeschützte Konvertierung zu vermeiden und Raw, Non, einzubetten -Proxy-Objekte im Zustandsspektrum 🎜🎜 Wenn Sie ein verschachteltes, nicht markiertes Rohobjekt auf ein reaktives Objekt setzen und dann erneut darauf zugreifen, erhalten Sie die Proxy-Version, was zu Risiken bei der Objektidentität führen kann🎜🎜Das heißt, die Leistung eine Operation, die auf der Objektidentität basiert, aber sowohl die Originalversion als auch die Proxy-Version desselben Objekts verwendet🎜rrreee

Zusammenfassung

🎜ref() und <code>reactive() konvertieren Daten eines nicht reagierenden Typs in reaktionsfähige Daten, während toRaw () und markRaw() äquivalent sind Die Wiederherstellung reaktionsfähiger Daten, die Umwandlung reaktionsfähiger Daten in nicht reaktionsfähige Daten 🎜🎜 und toRaw gilt nur für Daten vom Typ Responsive Objekt, wenn es um die Konvertierung reaktionsfähiger Daten in nicht reaktionsfähige Daten geht Wird nur für die reine Datenwiedergabe verwendet und führt nicht zu Seitenaktualisierungen. Sie können toRaw oder markRaw() verwenden : 🎜vuejs Einführungs-Tutorial🎜, 🎜Grundlegendes Programmiervideo🎜)🎜

Das obige ist der detaillierte Inhalt vonVue-Funktionsvergleich: Verwendung von toRaw() und markRaw(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

Vue realisiert Festzelt-/Text -Scrolling -Effekt Vue realisiert Festzelt-/Text -Scrolling -Effekt Apr 07, 2025 pm 10:51 PM

Implementieren Sie Marquee/Text-Scrolling-Effekte in VUE unter Verwendung von CSS-Animationen oder Bibliotheken von Drittanbietern. In diesem Artikel wird die Verwendung von CSS -Animation vorgestellt: Bildlauftext erstellen und Text mit & lt; div & gt;. Definieren Sie CSS -Animationen und setzen Sie Überlauf: Versteckt, Breite und Animation. Definieren Sie Keyframes, setzen Sie Transformation: Translatex () am Anfang und am Ende der Animation. Passen Sie die Animationseigenschaften wie Dauer, Bildlaufgeschwindigkeit und Richtung an.

Was bedeutet es für faule Ladungsvue? Was bedeutet es für faule Ladungsvue? Apr 07, 2025 pm 11:54 PM

In Vue.js können Komponenten oder Ressourcen bei Bedarf dynamisch geladen werden, wodurch die Ladezeit der Anfangsseite dynamisch geladen und die Leistung verbessert wird. Die spezifische Implementierungsmethode umfasst die Verwendung & lt; Keep-Alive & GT; und & lt; Komponente ist & gt; Komponenten. Es ist zu beachten, dass fauler Laden FOUC -Probleme (Splace Screen) verursachen kann und nur für Komponenten verwendet werden sollte, die eine faule Belastung erfordern, um unnötige Leistungsaufwand zu vermeiden.

So fragen Sie die Version von Vue So fragen Sie die Version von Vue Apr 07, 2025 pm 11:24 PM

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

See all articles