Vue の修飾子とは何ですか?一般的な修飾子の概要

青灯夜游
リリース: 2022-10-10 19:28:11
転載
1975 人が閲覧しました

この記事では、Vue の修飾子について簡単に理解し、一般的な修飾子と書き方をまとめますので、皆様のお役に立てれば幸いです。

Vue の修飾子とは何ですか?一般的な修飾子の概要

1. モディファイアとは

Vue では、モディファイアは多くの ## を処理します。 # の詳細DOM イベントは、こうした面倒な処理に多くの時間を費やす必要がなくなり、より多くのエネルギーをプログラムの論理処理に集中できることを意味します。 [関連する推奨事項: vuejs ビデオ チュートリアル ]

vue の修飾子は次の 5 つのタイプに分類されます:

    Form Modifier
  • イベント修飾子
  • マウスボタン修飾子
  • キー値修飾子
  • v-bind修飾子

2. 共通修飾子

2.1 フォーム修飾子

フォームに入力するときに最も一般的に使用される修飾子は、

input タグです。使用したコマンドは v-model

フォームに関する修飾子は次のとおりです:

    lazy
  • trim

#1.lazy

デフォルトでは、

v-modelinput Update のたびに実行されます。イベント後のデータです。 lazy 修飾子を追加して、各 change イベントの後にデータを更新することもできます:

<input type="text" v-model.lazy="value">
<p>{{value}}</p>
ログイン後にコピー

2.trim#デフォルトでユーザー入力の両端のスペースを自動的に削除したい場合は、

v-model

の後に .trim 修飾子を追加できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;input type=&quot;text&quot; v-model.trim=&quot;value&quot;&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

3.number

ユーザー入力を数値に自動的に変換したい場合は、

v-model

管理入力の後に .number 修飾子を追加します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;input v-model.number=&quot;age&quot; type=&quot;number&quot;&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

2.2 イベント修飾子

イベント修飾子は、イベント キャプチャとターゲットを処理します。次の修飾子があります:

stop
  • 予防
  • 自分
  • #一度
  • 捕捉
  • 受動的
  • ネイティブ
1. stop

は、イベントのバブリングを防ぎます。これは、

event.stopPropagation

メソッドを呼び出すのと同じです。イベントをクリックすると、配信が停止します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;div @click=&quot;shout(2)&quot;&gt;     &lt;button @click.stop=&quot;shout(1)&quot;&gt;ok&lt;/button&gt;  &lt;/div&gt;  //只输出1</pre><div class="contentsignin">ログイン後にコピー</div></div>

2.Prevent

イベントのデフォルトの動作を防止します。これは、

event.preventDefault

メソッドを呼び出すことと同じです。イベントを送信しても、ページはリロードされなくなります <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;form @submit.prevent=&quot;onSubmit&quot;&gt;&lt;/form&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

3. self

イベント ハンドラーは、event.target が要素自体である場合にのみトリガーされます (例: イベント ハンドラーは子要素から取得されません##) #
<div v-on:click.self="doThat">...</div>
ログイン後にコピー

関連するコードが同じ順序で生成されるため、修飾子を使用する場合は呼び出し順序に注意する必要があります。したがって、

@click.prevent.self
を使用すると、

要素とその子要素のすべてのクリック イベントのデフォルトの動作 が防止されますが、 @click.self.prevent要素自体のクリック イベントを防ぐデフォルトの動作のみです。

4. 1 回

イベントをバインドした後、トリガーできるのは 1 回のみで、2 回目はトリガーされません
<button @click.once="shout(1)">ok</button>
ログイン後にコピー

5. Capture

イベント リスナーを追加するときは、capture

キャプチャ モードを使用します。たとえば、内部要素を指すイベントは、によって処理される前に外部で処理されます。内部要素。この要素を含む最上位レベルから下方向にイベント トリガーを作成します

<div @click.capture="shout(1)">
    obj1
<div @click.capture="shout(2)">
    obj2
<div @click="shout(3)">
    obj3
<div @click="shout(4)">
    obj4
</div>
</div>
</div>
</div>
// 输出结构: 1 2 4 3
ログイン後にコピー
6.passive

モバイル側で、要素のスクロール イベントをリッスンするときonscroll

イベントをトリガーしたままにすると、Web ページがスタックしてしまうため、この修飾子を使用すると、

onscroll イベントに .lazy# を与えるのと同じになります。 ## 変更記号。 イベントのスクロール (スクロール) のデフォルト動作は、event.preventDefault()

が含まれている場合、

onScroll が完了するのを待たずにすぐに実行されます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 --&gt; &lt;!-- 而不会等待 `onScroll` 完成 --&gt; &lt;!-- 这其中包含 `event.preventDefault()` 的情况 --&gt; &lt;div v-on:scroll.passive=&quot;onScroll&quot;&gt;...&lt;/div&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>.passive 修飾子は通常、タッチ イベント リスナーで使用され、

モバイル デバイスのスクロール パフォーマンスを向上させるために使用できます

.passive

.prevent

を同時に使用しないでください。.passive はすでにブラウザに次のことを示しているためです。 がイベントのデフォルトの動作をブロックしたくない。これを行うと、.prevent は無視され、ブラウザは警告をスローします。

7. native

让组件变成像html内置标签那样监听根元素的原生事件,否则组件上使用 v-on 只会监听自定义事件

<my-component v-on:click.native="doSomething"></my-component>
ログイン後にコピー

使用.native修饰符来操作普通HTML标签是会令事件失效的

2.3 鼠标按钮修饰符

鼠标按钮修饰符针对的就是左键、右键、中键点击,有如下:

  • left 左键点击
  • right 右键点击
  • middle 中键点击
<button @click.left="shout(1)">ok</button>
<button @click.right="shout(1)">ok</button>
<button @click.middle="shout(1)">ok</button>
ログイン後にコピー

2.4 键盘修饰符

键盘修饰符是用来修饰键盘事件(onkeyuponkeydown)的,有如下:

keyCode存在很多,但vue为我们提供了别名,分为以下两种:

  • 普通键(enter、tab、delete、space、esc、up...)
  • 系统修饰键(ctrl、alt、meta、shift...)
// 只有按键为keyCode的时候才触发 
<input type="text" @keyup.keyCode="shout()">
ログイン後にコピー

2.5 v-bind修饰符

v-bind修饰符主要是为属性进行操作,用来分别有如下:

  • async
  • prop
  • camel

1. async

能对props进行一个双向绑定

//父组件
<comp :myMessage.sync="bar"></comp> 
//子组件
this.$emit('update:myMessage',params);
ログイン後にコピー

以上这种方法相当于以下的简写

//父亲组件
<comp :myMessage="bar" @update:myMessage="func"></comp>
func(e){
 this.bar = e;
}
//子组件js
func2(){
  this.$emit('update:myMessage',params);
}
ログイン後にコピー

使用async需要注意以下两点:

  • 使用sync的时候,子组件传递的事件名格式必须为update:value,其中value必须与子组件中props中声明的名称完全一致
  • 注意带有 .sync 修饰符的 v-bind 不能和表达式一起使用
  • 将 v-bind.sync 用在一个字面量的对象上,例如 v-bind.sync=”{ title: doc.title }”,是无法正常工作的

2. props

设置自定义标签属性,避免暴露数据,防止污染HTML结构

<input id="uid" title="title1" value="1" :index.prop="index">
ログイン後にコピー

3. camel

将命名变为驼峰命名法,如将 view-Box属性名转换为 viewBox

<svg :viewBox="viewBox"></svg>
ログイン後にコピー

三、应用场景

根据每一个修饰符的功能,我们可以得到以下修饰符的应用场景:

  • .stop:阻止事件冒泡
  • .native:绑定原生事件
  • .once:事件只执行一次
  • .self :将事件绑定在自身身上,相当于阻止事件冒泡
  • .prevent:阻止默认事件
  • .caption:用于事件捕获
  • .once:只触发一次
  • .keyCode:监听特定键盘按下
  • .right:右键

(学习视频分享:web前端开发编程基础视频

以上がVue の修飾子とは何ですか?一般的な修飾子の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート