vue.js の一般的な命令を理解する (概要)
v-text
v-text は主に textContent を更新するために使用されます。これは JS の text 属性に相当します。
<span v-text="text"></span> // 等同于下方语句: <span>{{text}}</span>
v-html
二重中括弧メソッドは、データを HTML ではなくプレーン テキストとして解釈します。実際の HTML を出力するには、v-html コマンドを使用します。 JSのinnerHtmlプロパティに相当します。
注: コンテンツは通常の HTML として挿入されます。Vue テンプレートとしてコンパイルされません。
<div v-html="html"></div>
v-show
CSS の dispaly 属性の「none」設定と「block」設定の切り替えに相当します。
<div v-show="isShow">hello world</div>
v-if
v-if は条件付きレンダリングを実装できます。Vue は式の true および false 条件に基づいて要素をレンダリングします。価値。 。
<div v-show="isShow">hello world</div>
上記のコードでは、isShow が false の場合、div がレンダリングされ、それ以外の場合はレンダリングされません。
注:
v-if は v-show と区別する必要があります。v-show の要素は常にレンダリングされ、dom に保存されます。これは単に の dispaly 属性を切り替えるだけです。 css。
v-if はスイッチングのオーバーヘッドが高くなります。
v-show では、初期レンダリングのオーバーヘッドが高くなります。
したがって、非常に頻繁に切り替える場合は v-show を使用することをお勧めします。実行中に条件が変更される可能性が低い場合は、v-if を使用することをお勧めします。
v-else
v-else は v-if とともに使用されます。v-if または v-else -if の後に続く必要があります。 、そうでない場合は効果がありません。
JS の if .. else に似ています。
<div v-if="isSow">值为true的时候显示的内容</div> <div v-else>值为false的时候显示的内容</div>
v-else-if
v-else-if は v-if の else-if ブロックとして機能し、使用できます。連鎖的に繰り返します。 JS の if .. else if .. else
<div v-if="type==='A'"> A </div> <div v-if="type==='B'"> B </div> <div v-if="type==='C'"> C </div> <div v-else> Not A,B,C </div>
v-for
v-for 命令を使用して、配列 。
<ul> <li v-for="item in items">{{item.name}}</li> </ul> <script> new Vue({ el: '#app', data: { items: [ { name: 'Runoob' }, { name: 'Google' }, { name: 'Taobao' } ] } }) </script> // 补充: // 也可以自行指定参数,最多可以接受3个参数 <div v-for="(item, index) in items"></div> <div v-for="(val, key) in object"></div> <div v-for="(val, name, index) in object"></div> // 迭代对象 <ul> <li v-for="value in object"> {{ index }}. {{ key }} : {{ value }} </li> // 迭代整数 <ul> <li v-for="n in 10"> {{ n }} </li> </ul>
v-on
イベント リスナーをバインドします。イベントの種類はパラメータで指定します。式はメソッドまたはインライン ステートメントの名前にすることができ、修飾子がない場合は省略できます。
v-on は、次のように「@」と省略することもできます。
v-on="show" は、@show
<!-- 方法处理器 --> <button v-on:click="doThis"></button> <!-- 动态事件 (2.6.0+) --> <button v-on:[event]="doThis"></button> <!-- 内联语句 --> <button v-on:click="doThat('hello', $event)"></button> <!-- 缩写 --> <button @click="doThis"></button> <!-- 动态事件缩写 (2.6.0+) --> <button @[event]="doThis"></button> <!-- 停止冒泡 --> <button @click.stop="doThis"></button> <!-- 阻止默认行为 --> <button @click.prevent="doThis"></button> <!-- 阻止默认行为,没有表达式 --> <form @submit.prevent></form> <!-- 串联修饰符 --> <button @click.stop.prevent="doThis"></button> <!-- 键修饰符,键别名 --> <input @keyup.enter="onEnter"> <!-- 键修饰符,键代码 --> <input @keyup.13="onEnter"> <!-- 点击回调只会触发一次 --> <button v-on:click.once="doThis"></button> <!-- 对象语法 (2.4.0+) --> <button v-on="{ mousedown: doThis, mouseup: doThat }"></button>
のように省略できます。 修飾子を使用することもできます。 :
.stop -event.stopPropagation() を呼び出します。
.prevent - event.preventDefault() を呼び出します。
.capture - イベント リスナーを追加するときにキャプチャ モードを使用します。
.self - コールバックは、リスナーがバインドされている要素自体からイベントがトリガーされた場合にのみトリガーされます。
.{keyCode | keyAlias} - コールバックは、イベントが特定のキーからトリガーされた場合にのみ起動されます。
.native - コンポーネントのルート要素でネイティブ イベントをリッスンします。
.once - コールバックは 1 回だけトリガーされます。
.left - マウスの左ボタンがクリックされた場合にのみ起動されます。
.right - マウスの右ボタンがクリックされた場合にのみトリガーされます。
.middle - マウスの中ボタンがクリックされた場合にのみトリガーされます。
.passive - {passive: true } モードでリスナーを追加します
v-bind
動的に1 つ以上の属性、またはコンポーネント プロパティを式にバインドします。多くの場合、クラスとスタイルを動的にバインドするために使用されます。そしてhrefなど。
は、「 : " (例:
v-bind:class=" isActive : 'active' :' ' ") と省略できます。 :class=" のように省略できます。」 isActive : ' active' :' ' "
<div v-bind:class=" isActive : 'active' :' ' "></div> <script> var app = new Vue({ el: '#app', data: { isActive : true, } }) </script> //渲染结果为: <div class="active"></div>
複数のクラスをバインドします。詳細は次のとおりです。
<div v-bind:class="[ isActive : 'active' :' ' , isError: 'error' :' ' ]"> </div> <script> var app = new Vue({ el: '#app', data: { isActive : true, isError: true, } }) </script> //渲染结果为: <div class="active error"></div>
その他の例。詳細については、以下のコードを参照してください。
<!-- 绑定一个属性 --> <img v-bind:src="imageSrc"> <!-- 动态特性名 (2.6.0+) --> <button v-bind:[key]="value"></button> <!-- 缩写 --> <img :src="imageSrc"> <!-- 动态特性名缩写 (2.6.0+) --> <button :[key]="value"></button> <!-- 内联字符串拼接 --> <img :src="'/path/to/images/' + fileName"> <!-- class 绑定 --> <div :class="{ red: isRed }"></div> <div :class="[classA, classB]"></div> <div :class="[classA, { classB: isB, classC: isC }]"> <!-- style 绑定 --> <div :style="{ fontSize: size + 'px' }"></div> <div :style="[styleObjectA, styleObjectB]"></div> <!-- 绑定一个有属性的对象 --> <div v-bind="{ id: someProp, 'other-attr': otherProp }"></div> <!-- 通过 prop 修饰符绑定 DOM 属性 --> <div v-bind:text-content.prop="text"></div> <!-- prop 绑定。“prop”必须在 my-component 中声明。--> <my-component :prop="someThing"></my-component> <!-- 通过 $props 将父组件的 props 一起传给子组件 --> <child-component v-bind="$props"></child-component> <!-- XLink --> <svg><a :xlink:special="foo"></a></svg>
v-model
#フォーム コントロールまたはコンポーネントに双方向バインディングを作成します。
v-model は、すべてのフォーム要素の value、checked、selected 属性の初期値を無視します。 Vue インスタンス データを特定の値として選択するためです。
<div id="app"> <input v-model="somebody"> <p>hello {{somebody}}</p> </div> <script> var app = new Vue({ el: '#app', data: { somebody:'小明' } }) </script>
この例では、ブラウザ入力に別の名前を直接入力すると、以下の p の内容がそれに応じて直接変更されます。これは双方向のデータ バインディングです。
利用可能な修飾子:
.lazy - デフォルトでは、v-model は入力ボックスの値とデータを同期します。この修飾子を使用して、変更イベントで再同期に切り替えることができます。
.number - ユーザーの入力値を数値型に自動的に変換します。
.trim - ユーザーが入力した先頭と末尾のスペースを自動的にフィルターします。
修飾子の使用方法:例:
<input v-model.trim="somebody">
v-pre
v-pre は主に、この要素とそのサブ要素のコンパイル プロセスをスキップするために使用されます。 。オリジナルのMustacheタグを表示するために使用できます。コンパイルを高速化するための指示なしで多数のノードをスキップします。
<div id="app"> <span v-pre>{{message}}</span> //这条语句不进行编译 <span>{{message}}</span> </div>
このディレクティブは、コンパイルのために関連するインスタンスが終了するまで要素上に留まるために使用されます。
<div id="app" v-cloak> <div> {{message}} </div> </div> <script type="text/javascript"> new Vue({ el:'#app', data:{ message:'hello world' } }) </script>
説明: ページがロードされると
が点滅します。最初に表示されるのは
<div> {{message}} </div>
で、次にコンパイルすると
<div> hello world! </div>
になります。 cloak コマンドは、上記の補間ちらつきの問題を次のように解決できます。 実際に使用されるのは、補間が読み込まれていないときに style 属性を通じてコンテンツを非表示にすることです。
<style> [v-cloak] { display: none; } </style> <div id="app"> <!-- 使用 v-cloak 能够解决 插值表达式闪烁的问题 --> <p v-cloak>++++++++ {{ msg }} ----------</p> </div> <script> var vm = new Vue({ el: '#app', data: { msg: 'hello', } }) </script>
v-once
v-once关联的实例,只会渲染一次。之后的重新渲染,实例极其所有的子节点将被视为静态内容跳过,这可以用于优化更新性能。
<span v-once>This will never change:{{msg}}</span> //单个元素 <div v-once>//有子元素 <h1>comment</h1> <p>{{msg}}</p> </div> <my-component v-once:comment="msg"></my-component> //组件 <ul> <li v-for="i in list">{{i}}</li> </ul>
上面的例子中,msg,list即使产生改变,也不会重新渲染。
v-slot
提供具名插槽或需要接收 prop 的插槽。
可简写为:#
slot 和 scope-slot 是在 vue@2.6.x 之前的语法,而从 vue@2.6.0 开始,官方推荐我们使用 v-slot 来替代前两者。
使用具名插槽来自定义模板内容(vue@2.6.x已经废弃)
<div class="container"> <header> <slot name="header"></slot> </header> <main> <slot></slot> </main> <footer> <slot name="footer"></slot> </footer> </div>
在向具名插槽提供内容的时候,我们可以在一个父组件的 元素上使用 slot 特性:
<base-layout> <template slot="header"> <h1>Here might be a page title</h1> </template> <p>A paragraph for the main content.</p> <p>And another one.</p> <template slot="footer"> <p>Here's some contact info</p> </template> </base-layout>
接下来,使用 v-slot 指令改写上面的栗子:
<base-layout> <template v-slot:header> <h1>Here might be a page title</h1> </template> <p>A paragraph for the main content.</p> <p>And another one.</p> <template v-slot:footer> <p>Here's some contact info</p> </template> </base-layout>
使用 # 简写代替 v-slot
<base-layout> <template #header> <h1>Here might be a page title</h1> </template> <p>A paragraph for the main content.</p> <p>And another one.</p> <template #footer> <p>Here's some contact info</p> </template> </base-layout>
相关推荐:
更多编程相关知识,请访问:编程教学!!
以上がvue.js の一般的な命令を理解する (概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Terrariaでコマンドを使用してアイテムを取得するにはどうすればよいですか? 1. Terraria でアイテムを与えるコマンドは何ですか? Terraria ゲームでは、アイテムにコマンドを与えることは非常に実用的な機能です。このコマンドにより、プレイヤーはモンスターと戦ったり、特定の場所にテレポートしたりすることなく、必要なアイテムを直接入手できます。これにより、時間が大幅に節約され、ゲームの効率が向上し、プレイヤーは世界の探索と構築により集中できるようになります。全体として、この機能によりゲーム体験がよりスムーズで楽しいものになります。 2. Terraria を使用してアイテム コマンドを与える方法 1. ゲームを開き、ゲーム インターフェイスに入ります。 2. キーボードの「Enter」キーを押してチャットウィンドウを開きます。 3. チャットウィンドウにコマンド形式「/give[プレイヤー名][アイテムID][アイテム数量]」を入力します。

Vue フレームワークを使用してフロントエンド プロジェクトを開発する場合、デプロイ時に複数の環境をデプロイすることになりますが、開発環境、テスト環境、オンライン環境で呼び出されるインターフェイス ドメイン名が異なることがよくあります。どうすれば区別できるでしょうか?それは環境変数とパターンを使用することです。

Ace は、JavaScript で書かれた埋め込み可能なコード エディターです。 Sublime、Vim、TextMate などのネイティブ エディターの機能とパフォーマンスに匹敵します。あらゆる Web ページや JavaScript アプリケーションに簡単に埋め込むことができます。 Ace は Cloud9 IDE のメイン エディタとして維持されており、Mozilla Skywriter (Bespin) プロジェクトの後継です。

Vue.js は、今日のフロントエンド開発において非常に人気のあるフレームワークとなっています。 Vue.js が進化し続けるにつれて、単体テストの重要性がますます高まっています。今日は、Vue.js 3 で単体テストを作成する方法を検討し、いくつかのベスト プラクティスと一般的な問題と解決策を提供します。

前書き: vue3 の開発では、reactive は応答性の高いデータを実装するメソッドを提供します。これは日常の開発で頻繁に使用される API です。この記事では、著者はその内部動作メカニズムを探ります。

この記事は、初心者が Vue.js3 をすぐに使い始めて、簡単なタブ切り替え効果を実現できるようにすることを目的としています。 Vue.js は、再利用可能なコンポーネントの構築、アプリケーションの状態の簡単な管理、ユーザー インターフェイスの操作の処理に使用できる人気の JavaScript フレームワークです。 Vue.js3 はフレームワークの最新バージョンであり、以前のバージョンと比較して大きな変更が加えられていますが、基本原理は変わっていません。この記事では、読者が Vue.js に慣れることを目的として、Vue.js の命令を使用してタブ切り替え効果を実装します。

Vue.js では、開発者は、JSX 構文とテンプレート構文という 2 つの異なる構文を使用してユーザー インターフェイスを作成できます。どちらの構文にもそれぞれ長所と短所があるので、それらの違い、長所と短所について説明します。

Vue3 のリリース以来、単語合成 API は Vue を書く学生の視野に入ってきました。合成 API が以前のオプション API よりもどれほど優れているかは誰もが聞いたことがあると思います。そして、@ のリリースにより、 vue/composition-api プラグイン、Vue2 学生もバスに乗れます. 次に、主に Response ref と Reactive を使用して、このプラグインがどのようにこれを実現しているかを詳細に分析します。
