ホームページ ウェブフロントエンド Vue.js vue.js の一般的な命令を理解する (概要)

vue.js の一般的な命令を理解する (概要)

Nov 06, 2020 pm 05:58 PM
vue.js 命令

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===&#39;A&#39;">
  A
</div>
<div v-if="type===&#39;B&#39;">
  B
</div>
<div v-if="type===&#39;C&#39;">
  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: &#39;#app&#39;,
  data: {
    items: [
      { name: &#39;Runoob&#39; },
      { name: &#39;Google&#39; },
      { name: &#39;Taobao&#39; }
    ]
  }
})
</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(&#39;hello&#39;, $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 : &#39;active&#39; :&#39; &#39; "></div>
<script>
  var app = new Vue({
    el: &#39;#app&#39;,
    data: {
      isActive : true, 
    }
  })
</script>

//渲染结果为: <div class="active"></div>
ログイン後にコピー

複数のクラスをバインドします。詳細は次のとおりです。

<div v-bind:class="[ isActive : &#39;active&#39; :&#39; &#39; , isError: &#39;error&#39; :&#39; &#39; ]">
</div>
<script>
  var app = new Vue({
    el: &#39;#app&#39;,
    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="&#39;/path/to/images/&#39; + fileName">

<!-- class 绑定 -->
<div :class="{ red: isRed }"></div>
<div :class="[classA, classB]"></div>
<div :class="[classA, { classB: isB, classC: isC }]">

<!-- style 绑定 -->
<div :style="{ fontSize: size + &#39;px&#39; }"></div>
<div :style="[styleObjectA, styleObjectB]"></div>

<!-- 绑定一个有属性的对象 -->
<div v-bind="{ id: someProp, &#39;other-attr&#39;: 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: &#39;#app&#39;,
    data: {
      somebody:&#39;小明&#39;
    }
  })
</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:&#39;#app&#39;,
   data:{
    message:&#39;hello world&#39;
   }
  })
</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: &#39;#app&#39;,
      data: {
        msg: &#39;hello&#39;,
      }
    })
  </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&#39;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&#39;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&#39;s some contact info</p>
  </template>
</base-layout>
ログイン後にコピー

相关推荐:

2020年前端vue面试题大汇总(附答案)

vue教程推荐:2020最新的5个vue.js视频教程精选

更多编程相关知识,请访问:编程教学!!

以上がvue.js の一般的な命令を理解する (概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

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 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Terrariaでコマンドを使用してアイテムを取得するにはどうすればよいですか? -Terrariaでアイテムを集めるにはどうすればよいですか? Terrariaでコマンドを使用してアイテムを取得するにはどうすればよいですか? -Terrariaでアイテムを集めるにはどうすればよいですか? Mar 19, 2024 am 08:13 AM

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

vite が .env ファイルを解析する方法についての詳細な説明 vite が .env ファイルを解析する方法についての詳細な説明 Jan 24, 2023 am 05:30 AM

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

Ace コード エディターを Vue プロジェクトに統合する方法の詳細な図による説明 Ace コード エディターを Vue プロジェクトに統合する方法の詳細な図による説明 Apr 24, 2023 am 10:52 AM

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

Vue3 で単体テストを作成する方法を調べる Vue3 で単体テストを作成する方法を調べる Apr 25, 2023 pm 07:41 PM

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

vue3 の reactive() について詳しく話しましょう vue3 の reactive() について詳しく話しましょう Jan 06, 2023 pm 09:21 PM

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

VUE3 クイック スタート: Vue.js 命令を使用してタブを切り替える VUE3 クイック スタート: Vue.js 命令を使用してタブを切り替える Jun 15, 2023 pm 11:45 PM

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

JSX 構文と Vue のテンプレート構文の簡単な比較 (利点と欠点の分析) JSX 構文と Vue のテンプレート構文の簡単な比較 (利点と欠点の分析) Mar 23, 2023 pm 07:53 PM

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

Vue2実装APIの原理を解析する Vue2実装APIの原理を解析する Jan 13, 2023 am 08:30 AM

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

See all articles