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

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

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

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

1. モディファイアとは

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

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

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

2. 共通修飾子

2.1 フォーム修飾子

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

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

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

    lazy
  • trim

#1.lazy

デフォルトでは、

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

 

{{value}}

ログイン後にコピー

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

v-model

の後に.trim修飾子を追加できます:

<input type="text" v-model.trim="value">
ログイン後にコピー

3.number

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

v-model

管理入力の後に.number修飾子を追加します。

<input v-model.number="age" type="number">
ログイン後にコピー

2.2 イベント修飾子

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

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

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

event.stopPropagation

メソッドを呼び出すのと同じです。イベントをクリックすると、配信が停止します。

<div @click="shout(2)"> <button @click.stop="shout(1)">ok</button> </div> //只输出1
ログイン後にコピー

2.Prevent

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

event.preventDefault

メソッドを呼び出すことと同じです。イベントを送信しても、ページはリロードされなくなります

<form @submit.prevent="onSubmit"></form>
ログイン後にコピー

3. self

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

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

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

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

4. 1 回

イベントをバインドした後、トリガーできるのは 1 回のみで、2 回目はトリガーされません
ログイン後にコピー

5. Capture

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

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

obj1
obj2
obj3
obj4
// 输出结构: 1 2 4 3
ログイン後にコピー
6.passive

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

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

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

が含まれている場合、

onScrollが完了するのを待たずにすぐに実行されます。

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 --> <!-- 而不会等待 `onScroll` 完成 --> <!-- 这其中包含 `event.preventDefault()` 的情况 --> <div v-on:scroll.passive="onScroll">...</div>
ログイン後にコピー
.passive修飾子は通常、タッチ イベント リスナーで使用され、

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

.passive

.prevent

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

7. native

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

ログイン後にコピー

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

2.3 鼠标按钮修饰符

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

  • left 左键点击
  • right 右键点击
  • middle 中键点击
  
ログイン後にコピー

2.4 键盘修饰符

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

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

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

2.5 v-bind修饰符

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

  • async
  • prop
  • camel

1. async

能对props进行一个双向绑定

//父组件  //子组件 this.$emit('update:myMessage',params);
ログイン後にコピー

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

//父亲组件  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结构

ログイン後にコピー

3. camel

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

ログイン後にコピー

三、应用场景

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

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

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

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

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