亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

vue dom とはどういう意味ですか?

Dec 20, 2022 pm 08:41 PM
vue dom 仮想ドーム

DOM はドキュメント オブジェクト モデルであり、HTML プログラミング用のインターフェイスであり、ページ內の要素は DOM を通じて操作されます。 DOM は HTML ドキュメントのメモリ內オブジェクト表現(xiàn)であり、JavaScript を使用して Web ページと対話する方法を提供します。 DOM は、ドキュメント ノードをルートとするノードの階層 (またはツリー) です。

vue dom とはどういう意味ですか?

#このチュートリアルの動作環(huán)境: Windows7 システム、vue3 バージョン、DELL G3 コンピューター。

domとは

domとはドキュメントオブジェクトモデルであり、HTMLプログラミングのためのインターフェースであり、ページはdom要素を通じて操作されます。 HTML ページが読み込まれると、ブラウザーは DOM を作成します。DOM は、ドキュメントに新しい論理構造を提供し、コンテンツと構造を変更できます。

DOM はドキュメント オブジェクト モデル (略して DOM) と呼ばれ、拡張可能なマークアップ言語を処理するために W3C 組織によって推奨されている標準プログラミング インターフェイスです。 HTML ドキュメントの JavaScript を使用して Web ページと対話する方法を提供します。 DOM は、ドキュメント ノードをルートとするノードの階層 (またはツリー) です。

実際、DOM はオブジェクト指向の方法で記述されたドキュメント モデルです。 DOM は、ドキュメントを表現(xiàn)および変更するために必要なオブジェクト、これらのオブジェクトの動作とプロパティ、およびこれらのオブジェクト間の関係を定義します。

JavaScript を使用すると、HTML ドキュメント全體を再構築できます。ページ上の項目の追加、削除、変更、再配置など。

ページ上の何かを変更するには、JavaScript が HTML ドキュメント內のすべての要素にアクセスする必要があります。このエントリは、HTML 要素を追加、移動、変更、または削除するためのメソッドおよびプロパティとともに、ドキュメント オブジェクト モデルを通じて取得されます。

仮想 DOM とは

仮想 DOM の概念は誰もがよく知っていると思いますが、React から Vue まで、仮想 DOM は両方のフレームワークですクロスプラットフォーム機能 (React-Native と Weex) をもたらします

実際、これは実際の DOM の抽象化レイヤーにすぎず、JavaScript オブジェクト (VNode ノード) をベースツリーとして使用し、オブジェクトはノードを記述するために使用され、最終的に一連の操作を通じてツリーを実際の環(huán)境にマッピングできます。

JavaScript オブジェクトでは、仮想 DOM は Object オブジェクトとして表されます。そして、少なくとも 3 つの屬性が含まれています: タグ名 (tag)、屬性 (attrs)、および子要素オブジェクト (children)。フレームワークが異なれば、これら 3 つの屬性の名前も異なる場合があります。

仮想 DOM の作成は、仮想ノードをページ ビューにレンダリングすると、仮想 DOM オブジェクトのノードが実際の DOM のプロパティに 1 つずつ対応します。

仮想 DOM テクノロジは vue

Define でも使用されます。実際の DOM

<div id="app">
    <p class="p">節(jié)點內容</p>
    <h3>{{ foo }}</h3>
</div>

vue のインスタンス化

const app = new Vue({
    el:"#app",
    data:{
        foo:"foo"
    }
})

レンダリングのレンダリングを観察すると、仮想 DOM#
(function anonymous(
) {
	with(this){return _c(&#39;div&#39;,{attrs:{"id":"app"}},[_c(&#39;p&#39;,{staticClass:"p"},
					  [_v("節(jié)點內容")]),_v(" "),_c(&#39;h3&#39;,[_v(_s(foo))])])}})

VNode を介して取得できます。vue はノードの作成、ノードの削除、変更を行うことができます。抽象ツリー ノード操作の場合、変更が必要な最小単位が diff アルゴリズムによって取得され、ビューが更新されるため、DOM 操作が軽減され、パフォーマンスが向上します。

Vue が DOM を取得するためのいくつかのメソッド

Vue は MVVM モデルを実裝し、データとパフォーマンスを分離しますが、必要なのはデータを更新することだけですDOM を同期的に更新できますが、場合によっては、操作のために DOM 要素を取得する必要がある場合もあります (たとえば、導入されたライブラリでは、ルート dom 要素をルート ノードとして渡すか、いくつかのカスタム命令を記述する必要があります)。 Vue で DOM 要素を取得するいくつかの方法。

DOM API を使用して要素を直接検索します

<script>
	...
	mounted () {
		let elm = this.$el.querySelector(&#39;#id&#39;)
	}
</script>
この方法はシンプルで直感的であり、Vue コンポーネントは これを実行します。 $el には、マウントされたルート dom 要素の値が割り當てられます。

$el

querySelector、querySelectorAll、およびその他のメソッドを直接使用して、一致する要素を取得できます。

refs

<template>
	<div ref="bar">{{ foo }}</div>
	<MyAvatar ref="avatar" />
	...
</template>
<script>
	...
	mounted () {
		let foo = this.$refs[&#39;bar&#39;] // 一個dom元素
		let avatar = this.$refs[&#39;avatar&#39;] // 一個組件實例對象
	}
</script>
コンポーネント インスタンスの $refs を使用してコンポーネント

ref## を取得します#屬性に対応する要素。

ref 屬性がコンポーネントに追加された場合、取得されるのはこのコンポーネントのインスタンスです。それ以外の場合、取得されるのは dom 要素です。 v-for ループ テンプレート ディレクティブが含まれる場合、ループ要素とサブ要素の
ref

屬性は配列 (動的に生成された ref、配列であっても):

<template>
	<div v-for="item in qlist" :key="item.id" ref="qitem">
		<h3>{{ item.title  }}</h3>
		<p ref="pinitem">{{ item.desc }}</p>
		<p :ref="&#39;contact&#39;+item.id">{{ item.contact }}</p>
	</div>
	...
</template>
<script>
	...
	data () {
		return {
			qlist: [
				{ id: 10032, title: &#39;abc&#39;, desc: &#39;aadfdcc&#39;, contact: 123 },
				{ id: 11031, title: &#39;def&#39;, desc: &#39;--*--&#39;, contact: 856 },
				{ id: 20332, title: &#39;ghi&#39;, desc: &#39;?/>,<{]&#39;, contact: 900 }
			]
		}
	},
	mounted () {
		let foo = this.$refs[&#39;qitem&#39;] // 一個包含dom元素的數(shù)組
		let ps = this.$refs[&#39;pinitem&#39;] // p元素是v-for的子元素,同樣是一個數(shù)組
		let contact1 = this.$refs[&#39;contact&#39; + this.qlist[0].id] // 還是個數(shù)組
	}
</script>
この理由は、Vue の ref 処理に関するコード部分から取得できます:
function registerRef (vnode, isRemoval) {
  var key = vnode.data.ref;
  if (!isDef(key)) { return }

  var vm = vnode.context;
  // vnode如果有componentInstance表明是一個組件vnode,它的componentInstance屬性是其真實的根元素vm
  // vnode如果沒有componentInstance則不是組件vnode,是實際元素vnode,直接取其根元素
  var ref = vnode.componentInstance || vnode.elm;
  var refs = vm.$refs;
  if (isRemoval) {
    ...
  } else {
  	// refInFor是模板編譯階段生成的,它是一個布爾值,為true表明此vnode在v-for中
    if (vnode.data.refInFor) {
      if (!Array.isArray(refs[key])) {
        refs[key] = [ref]; // 就算元素唯一,也會被處理成數(shù)組
      } else if (refs[key].indexOf(ref) < 0) {
        // $flow-disable-line
        refs[key].push(ref);
      }
    } else {
      refs[key] = ref;
    }
  }
}

カスタム命令を使用する

##Vue はカスタム命令を提供します。公式ドキュメントには次の使用方法が記載されています (el は dom 要素

Vue.directive(&#39;focus&#39;, {
  // 當被綁定的元素插入到 DOM 中時……
  inserted: function (el) {
    // 聚焦元素
    el.focus()
  }
})

// 在模板中
<template>
	<input v-model="name" v-focus />
</template>
## への參照です) # カスタム命令に関しては、コンポーネント ライブラリやイベント レポートなどのシナリオで非常に役立ちます。

[関連する推奨事項:

vuejs ビデオ チュートリアル Web フロントエンド開発

]

以上がvue dom とはどういう意味ですか?の詳細內容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vueの反応性変換(実験、削除)とその目標の重要性は何ですか? Vueの反応性変換(実験、削除)とその目標の重要性は何ですか? Jun 20, 2025 am 01:01 AM

ReactivitytransforminVue3aimedtosimplifyhandlingreactivedatabyautomaticallytrackingandmanagingreactivitywithoutrequiringmanualref()or.valueusage.Itsoughttoreduceboilerplateandimprovecodereadabilitybytreatingvariableslikeletandconstasautomaticallyreac

VUEアプリケーションで國際化(I18N)とローカリゼーション(L10N)をどのように実裝できますか? VUEアプリケーションで國際化(I18N)とローカリゼーション(L10N)をどのように実裝できますか? Jun 20, 2025 am 01:00 AM

Internationalization andLocalizationInvueappsareprimalyally Handusingthevuei18nplugin.1.installvue-i18nvianpmoryarn.2.createLocalejsonfiles(例えば、en.json、es.json)for translationmessages.3.セクタイズ

VUEでV-Forディレクティブを使用してキー屬性(:key)を使用することの利點は何ですか? VUEでV-Forディレクティブを使用してキー屬性(:key)を使用することの利點は何ですか? Jun 08, 2025 am 12:14 AM

keyattributewithv-forinvueisentionforperformance andcorrectbehavior.first、ithelpsvuetrackeachelementivientlyは、evirtualdodifing diffingalgorithmを使用して、how'snlyly.lys nusterary.second、Itpreservescompentateinsirinideuri、insuriを識別します

VUEの大きなリストまたは複雑なコンポーネントの再レンダリングを最適化するにはどうすればよいですか? VUEの大きなリストまたは複雑なコンポーネントの再レンダリングを最適化するにはどうすればよいですか? Jun 07, 2025 am 12:14 AM

VUEの大きなリストと複雑なコンポーネントのパフォーマンスを最適化する方法は次のとおりです。1。V-Onceディレクティブを使用して靜的コンテンツを処理して、不必要な更新を削減します。 2。仮想スクロールを実裝し、Vue-Virtual-Scrollerライブラリを使用するなど、視覚領域のコンテンツのみをレンダリングします。 3.重複マウントを避けるために、キープアリブまたはv-onceを介したコンポーネントをキャッシュします。 4.計算されたプロパティとリスナーを使用して、レスポンシブロジックを最適化して再レンダリング範囲を削減します。 5. V-Forで一意のキーを使用し、テンプレートでのインライン関數(shù)の回避、パフォーマンス分析ツールを使用してボトルネックを見つけるなど、ベストプラクティスに従ってください。これらの戦略は、アプリケーションの流encyさを効果的に改善できます。

VUEでSSRをレンダリングするサーバーサイドレンダリングとは何ですか? VUEでSSRをレンダリングするサーバーサイドレンダリングとは何ですか? Jun 25, 2025 am 12:49 AM

Server-SiderEndering(SSR)InvueRovesPerformanceAndSeobygeneratinghtmlontheserver.1.theserverrunsvueappcodeandehtmlbasedonthecurrourte.2.thathtmlissenttotheblowserimitally.2.thathtmlissenttothebertmediTeagetentententententententententeventefedefedefedefedefededeventedeventedeventeventheperiTegededeventheperiTegediedeventheperiTeage

Vueに移行とアニメーションを実裝する方法は? Vueに移行とアニメーションを実裝する方法は? Jun 24, 2025 pm 02:17 PM

toaddtransitionSandanimationsInvue、usebuilt-incomponentslikeand、applycssclasses、leveragetransitionhooksforcontrol.1.wrapelementswithandapplycsstransitionclassesslikeslikev-enter-fforbasediseforideferidenidenidenideddeddeddedivedivedivedivedive dedivedivedivedivedistransition

VUEの次のティック関數(shù)の目的は何ですか、そしてそれはいつ必要ですか? VUEの次のティック関數(shù)の目的は何ですか、そしてそれはいつ必要ですか? Jun 19, 2025 am 12:58 AM

Next TickはVUEで使用され、DOMの更新後にコードを実行します。データが変更されると、VUEはすぐにDOMを更新しませんが、キューに入れて、次のイベントループ「Tick」で処理します。したがって、更新されたDOMにアクセスまたは操作する必要がある場合は、Next Tickを使用する必要があります。一般的なシナリオには、更新されたDOMコンテンツへのアクセス、DOM狀態(tài)に依存するサードパーティライブラリとのコラボレーション、および要素サイズに基づいて計算が含まれます。その使用には、これをコンポーネントメソッドとして呼び出すこと、インポート後に単獨で使用し、Async/awaitの組み合わせが含まれます。予防策には以下が含まれます。ほとんどの場合、過度の使用を回避するには、手動トリガーが必要ありません。次の點では、一度に複數(shù)の更新をキャプチャできます。

VUEでコンポーネントライブラリを構築する方法は? VUEでコンポーネントライブラリを構築する方法は? Jul 10, 2025 pm 12:14 PM

VUEコンポーネントライブラリを構築するには、ビジネスシナリオの周りに構造を設計し、開発、テスト、リリースの完全なプロセスに従う必要があります。 1.構造設計は、基本的なコンポーネント、レイアウトコンポーネント、ビジネスコンポーネントなどの機能モジュールに従って分類する必要があります。 2。SCSSまたはCSS変數(shù)を使用して、テーマとスタイルを統(tǒng)合します。 3.命名仕様を統(tǒng)合し、ESLINTときれいを導入して、一貫したコードスタイルを確保します。 4.サポートドキュメントサイトにコンポーネントの使用を表示します。 5。Viteおよびその他のツールを使用して、NPMパッケージとしてパッケージ化し、RollUpotionsを構成します。 6. SEMVER仕様に従って、公開時にバージョンと変更ログを管理します。

See all articles