検索
ホームページウェブフロントエンドフロントエンドQ&Avuejsにはどのようなイベントがありますか

vuejs のイベントは次のとおりです: focus、blur、click (click)、dblclick、contextmen、mousemove、mouseover、mouseout、mouseup、keydown、keyup、select、wheel など。

vuejsにはどのようなイベントがありますか

このチュートリアルの動作環境: Windows7 システム、vue2.9.6 バージョン、DELL G3 コンピューター。

イベント ハンドラー イベント処理

Vuejs でのイベント処理は非常に強力であり、非常に重要です。私たちはそれをよく学ばなければなりません。

イベント ハンドラー Vuejs がイベント ハンドラーを高い位置に置く理由は、次の考慮事項に基づいています:

  • イベントに関連するコードを記述します。独立して、さまざまなロジックを見つけるのが非常に簡単で、保守も簡単です。

  • イベント ハンドラーを分離すると、ページの DOM 要素は非常にシンプルになります。わかりやすい。

  • ページが閉じられると、対応する ViewModel もリサイクルされます。その後、ページ上で定義されているさまざまな イベント ハンドラー もガベージ コレクションされます。メモリオーバーフローを引き起こしません。

サポート済みイベント

以前にも見たことがあります。 v-on:click に行ったことがあるので、v-on ではどのようなイベントをサポートできますか?

標準の HTML で定義された Event である限り、Vuejs でサポートされます。

  • focus (要素がフォーカスを取得します)
  • blur (要素がフォーカスを失います)
  • click (マウスの左ボタンをクリック)
  • dblclick (マウスの左ボタンをダブルクリック)
  • #contextmenu (単一マシンマウスの右ボタン)
  • mouseover (イベント監視のある要素またはその子要素にポインタが移動します)
  • mouseout (ポインタが外に移動します)要素の、またはその子要素へ Up)
  • keydown (キーボード アクション: 任意のキーを押す)
  • keyup (キーボード アクション: 放す)任意のキー)
すべての HTML 標準イベント: https://developer.mozilla.org/zh-CN/docs/Web/Events

例:

vuejsにはどのようなイベントがありますか

vuejsにはどのようなイベントがありますか

vuejsにはどのようなイベントがありますか

合計 162 の標準イベントと数十の非標準イベントが定義されています。 Mozilla 固有のイベントも含まれます。以下の図に示すように:

vuejsにはどのようなイベントがありますか これらすべてを覚える必要はありません。通常、日々の開発では、最も一般的なイベントは 20 未満です。

使用

v-on イベントのバインド

ほとんどすべてのイベントは

v-on この ディレクティブ によって駆動されると考えることができます。そこで、このセクションでは、v-on について詳しく説明します。

1. v-on

で変数を使用する次のコードに示すように、

v-on:## で変数を参照できます。 #<pre class='brush:php;toolbar:false;'>&lt;html&gt; &lt;head&gt; &lt;script src=&quot;https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js&quot;&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div id=&amp;#39;app&amp;#39;&gt; 您点击了: {% raw %}{{{% endraw %} count }} 次 &lt;br/&gt; &lt;button v-on:click=&amp;#39;count += 1&amp;#39; style=&amp;#39;margin-top: 50px&amp;#39;&gt; + 1&lt;/button&gt; &lt;/div&gt; &lt;script&gt; var app = new Vue({ el: &amp;#39;#app&amp;#39;, data: { count: 0 } }) &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre> ブラウザで上記のコードを開いてボタンをクリックすると、変数

count

が 1 になることがわかります。次の図に示すように:

vuejsにはどのようなイベントがありますか

2.

v-on でメソッド名 を使用します。上記の例は次のように実装することもできます:

<html>
<head>
	<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
	<div id=&#39;app&#39;>
		您点击了:{% raw %}{{{% endraw %} count }} 次
		<br/>
		<button v-on:click=&#39;increase_count&#39; style=&#39;margin-top: 50px&#39;>  + 1 </button>
	</div>

	<script>
		var app = new Vue({
			el: &#39;#app&#39;, 
			data: {
				count: 0
			}, 
			methods: {
				increase_count: function(){
					this.count += 1
				}
			}
		})
	</script>
</body>
</html>

v-on:click='increase_count'

increase_count がメソッド名であることがわかります。

3.

v-onでメソッド名パラメータを使用します。

v-on:click=' を直接使用することもできます。 some_function("your_parameter")'

は、次の例に示すように、次のように記述されます。 <pre class='brush:php;toolbar:false;'>&lt;html&gt; &lt;head&gt; &lt;script src=&quot;https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js&quot;&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div id=&amp;#39;app&amp;#39;&gt; {% raw %}{{{% endraw %} message }} &lt;br/&gt; &lt;button v-on:click=&amp;#39;say_hi(&quot;明日的Vuejs大神&quot;)&amp;#39; style=&amp;#39;margin-top: 50px&amp;#39;&gt; 跟我打个招呼~ &lt;/button&gt; &lt;/div&gt; &lt;script&gt; var app = new Vue({ el: &amp;#39;#app&amp;#39;, data: { message: &quot;这是个 在click中调用 方法 + 参数的例子&quot; }, methods: { say_hi: function(name){ this.message = &quot;你好啊,&quot; + name + &quot;!&quot; } } }) &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre> ブラウザで開いた後、ボタンをクリックすると、次の図が表示されます。


vuejsにはどのようなイベントがありますか

#4. ボタンのロジックを再設計する

実際の開発では、ボタンをクリックするか、特定の After をトリガーするという状況によく遭遇します。イベントでは、ボタンのデフォルト状態が必要です。

最も典型的な例: フォーム (

) を送信するとき、最初にフォームを検証します。検証が失敗した場合、フォームは送信されません。 現時点で、フォームを送信したくない場合は、次のアクションを行わずに、この

submit

ボタンを作成する必要があります。すべての開発言語には、「preventDefault」という対応するメソッドがあります: "preventDefault"
(デフォルトのアクションを停止します)

この例を見てみましょう:

<html>
<head>
	<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
	<div id=&#39;app&#39;>

		请输入您想打开的网址,   	<br/>
		判断规则是: 				<br/>
		1. 务必以 "http://"开头 	<br/>
		2. 不能是空字符串			<br/>
		<input v-model="url" placeholder="请输入 http:// 开头的字符串, 否则不会跳转" /> <br/>
		<br/>
		<a v-bind:href="this.url" v-on:click=&#39;validate($event)&#39;> 点我确定 </a>
	</div>

	<script>
		var app = new Vue({
			el: &#39;#app&#39;, 
			data: {
				url: &#39;&#39;
			}, 
			methods: {
				validate: function(event){
					if(this.url.length == 0 || this.url.indexOf(&#39;http://&#39;) != 0){
						alert("您输入的网址不符合规则。 无法跳转")
						if(event){
							alert("event is: " + event)
							event.preventDefault()
						}   
					}
				}
			}
		})
	</script>
</body>
</html>

上面的代码中,可以看到,我们定义了一个变量: url. 并且通过代码:

<a v-bind:href="this.url" v-on:click="'validate($event)'"> 点我确定 </a> 做了两件事情:

  • url 绑定到了该元素上。

  • 该元素 在触发 click事件时,会调用 validate方法。 该方法传递了一个特殊的参数: $event. 该参数是当前 事件的一个实例。(MouseEvent)

validate方法中,我们是这样定义的: 先验证是否符合规则。 如果符合,放行,会继续触发 <a></a> 元素的默认动作(让浏览器发生跳转) 。 否则的
话,会弹出一个 “alert” 提示框。

用浏览器打开这段代码,可以看到下图所示:
vuejsにはどのようなイベントがありますか
我们先输入一个合法的地址: http://baidu.com , 可以看到,点击后,页面发生了跳转。 跳转到了百度。

我们再输入一个 “不合法”的地址: https://baidu.com 注意: 该地址不是以 “http://” 开头,所以我们的vuejs 代码不会让它放行。

如下图所示:
vuejsにはどのようなイベントがありますか
进一步观察,页面也不会跳转(很好的解释了 这个时候 <a></a> 标签点了也不起作用)

5. Event Modifiers 事件修饰语

我们很多时候,希望把代码写的优雅一些。 使用传统的方式,可能会把代码写的很臃肿。 如果某个元素在不同的event下有不同的表现,那么代码看起来就会有
很多个 if ...else ... 这样的分支。

所以, Vuejs 提供了 “Event Modifiers”。

例如,我们可以把上面的例子略加修改:

<html>
<head>
	<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
	<div id=&#39;app&#39;>

		请输入您想打开的网址,   	<br/>
		判断规则是: 				<br/>
		1. 务必以 "http://"开头 	<br/>
		2. 不能是空字符串			<br/>
		<input v-model="url" placeholder="请输入 http:// 开头的字符串, 否则不会跳转" /> <br/>
		<br/>
		<a v-bind:href="this.url" v-on:click=&#39;validate($event)&#39; v-on:click.prevent=&#39;show_message&#39;> 点我确定 </a>
	</div>

	<script>
		var app = new Vue({
			el: &#39;#app&#39;, 
			data: {
				url: &#39;&#39;
			}, 
			methods: {
				validate: function(event){
					if(this.url.length == 0 || this.url.indexOf(&#39;http://&#39;) != 0){
						if(event){
							event.preventDefault()
						}   
					}
				},
				show_message: function(){
					alert("您输入的网址不符合规则。 无法跳转")
				}
			}
		})
	</script>
</body>
</html>

可以看出,上面的代码的核心是:

<a v-bind:href="this.url" v-on:click=&#39;validate($event)&#39; v-on:click.prevent=&#39;show_message&#39;> 点我确定 </a>

methods: {
	validate: function(event){
		if(this.url.length == 0 || this.url.indexOf(&#39;http://&#39;) != 0){
			if(event){
				event.preventDefault()
			}   
		}
	},
	show_message: function(){
		alert("您输入的网址不符合规则。 无法跳转")
	}
}

先是在 <a></a> 中定义了两个 click 事件,一个是 click, 一个是 click.prevent. 后者表示,如果该元素的click 事件被 阻止了的话, 应该触发什么动作。

然后,在 methods 代码段中,专门定义了 show_message , 用来给 click.prevent 所使用。

上面的代码运行起来,跟前一个例子是一模一样的。 只是抽象分类的程度更高了一些。 在复杂的项目中有用处。

这样的 “event modifier”,有这些:

  • stop propagation 被停止后( 也就是调用了 event.stopPropagation()方法后 ),被触发
  • prevent 调用了 event.preventDefault() 后被触发。
  • capture 子元素中的事件可以在该元素中 被触发。
  • self 事件的 event.target 就是本元素时,被触发。
  • once 该事件最多被触发一次。
  • passive 为移动设备使用。 (在addEventListeners 定义时,增加passive选项。)

以上的 “event modifier” 也可以连接起来使用。 例如: v-on:click.prevent.self

6. Key Modifiers 按键修饰语

Vuejs 也很贴心的提供了 Key Modifiers, 也就是一种支持键盘事件的快捷方法。 我们看下面的例子:

<html>
<head>
	<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
	<div id=&#39;app&#39;>
		输入完毕后,按下回车键,就会<br/>
		触发 "show_message" 事件~  <br/><br/>

		<input v-on:keyup.enter="show_message" v-model="message" />
	</div>

	<script>
		var app = new Vue({
			el: &#39;#app&#39;, 
			data: {
				message: &#39;&#39;
			}, 
			methods: {
				show_message: function(){
					alert("您输入了:" + this.message)
				}
			}
		})
	</script>
</body>
</html>

可以看到,在上面的代码中, v-on:keyup.enter="show_message"<a></a> 元素定义了事件,该事件对应了 “回车键”。
(严格的说,是回车键被按下后,松开弹起来的那一刻)

我们用浏览器打开上面的代码对应的文件,输入一段文字,按回车,就可以看到事件已经被触发了。 

Vuejs 总共支持下面这些 Key modifiers:

  • enter 回车键
  • tab tab 键
  • delete 同时对应了 backspace 和 del 键
  • esc ESC 键
  • space 空格
  • up 向上键
  • down 向下键
  • left 向左键
  • right 向右键

随着 Vuejs 版本的不断迭代和更新,越来越多的 Key modifiers 被添加了进来, 例如 page down, ctrl 。对于这些键的用法,
大家可以查阅官方文档。

相关推荐:《vue.js教程

以上がvuejsにはどのようなイベントがありますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
React:現代のフロントエンド開発の基礎React:現代のフロントエンド開発の基礎Apr 19, 2025 am 12:23 AM

Reactは、最新のフロントエンドアプリケーションを構築するためのJavaScriptライブラリです。 1.パフォーマンスを最適化するために、コンポーネントおよび仮想DOMを使用します。 2。コンポーネントJSXを使用して、データを管理するために定義、状態、および属性を定義します。 3.フックはライフサイクル管理を簡素化します。 4. Contextapiを使用して、グローバルステータスを管理します。 5.一般的なエラーには、デバッグステータスの更新とライフサイクルが必要です。 6。最適化手法には、メモ、コード分割、仮想スクロールが含まれます。

Reactの未来:Web開発におけるトレンドと革新Reactの未来:Web開発におけるトレンドと革新Apr 19, 2025 am 12:22 AM

Reactの未来は、究極のコンポーネント開発、パフォーマンスの最適化、および他のテクノロジースタックとの深い統合に焦点を当てます。 1)Reactは、コンポーネントの作成と管理をさらに簡素化し、究極のコンポーネント開発を促進します。 2)特に大規模なアプリケーションでは、パフォーマンスの最適化が焦点になります。 3)Reactは、開発エクスペリエンスを改善するために、GraphQLやTypeScriptなどのテクノロジーと深く統合されます。

React:UIコンポーネントを構築するための強力なツールReact:UIコンポーネントを構築するための強力なツールApr 19, 2025 am 12:22 AM

Reactは、ユーザーインターフェイスを構築するためのJavaScriptライブラリです。その核となるアイデアは、コンポーネントを通じてUIを構築することです。 1.コンポーネントは、UIロジックとスタイルをカプセル化する反応の基本単位です。 2。仮想DOMと状態管理はコンポーネントの作業の鍵であり、状態はSetStateから更新されます。 3.ライフサイクルには、マウント、更新、アンインストールの3つのステージが含まれます。パフォーマンスは、合理的に使用して最適化できます。 4. UseStateとContextapiを使用して、状態を管理し、コンポーネントの再利用性とグローバルな州管理を改善します。 5.一般的なエラーには、不適切なステータスの更新とパフォーマンスの問題が含まれます。これは、ReactDevtoolsを介してデバッグできます。 6.パフォーマンス最適化の提案には、メモの使用、不必要な再レンダリングの回避、および私たちの使用が含まれます

HTMLとのReactを使用:コンポーネントとデータのレンダリングHTMLとのReactを使用:コンポーネントとデータのレンダリングApr 19, 2025 am 12:19 AM

HTMLを使用してReactでコンポーネントとデータをレンダリングすることは、次の手順を通じて達成できます。JSX構文の使用:JSX構文を使用してHTML構造をJavaScriptコードに埋め込み、コンパイル後にDOMを操作します。コンポーネントはHTMLと組み合わされます。Reactコンポーネントはプロップを介してデータを渡し、などのHTMLコンテンツを動的に生成します。データフロー管理:Reactのデータフローは、親コンポーネントから子コンポーネントに渡される一方通行であり、アプリコンポーネントが名前を挨拶に渡すなど、データフローが制御可能であることを保証します。基本的な使用例:マップ関数を使用してリストをレンダリングするには、フルーツリストのレンダリングなどのキー属性を追加する必要があります。高度な使用例:UseStateフックを使用して状態を管理し、ダイナミクスを実装する

Reactの目的:シングルページアプリケーションの構築(SPA)Reactの目的:シングルページアプリケーションの構築(SPA)Apr 19, 2025 am 12:06 AM

Reactは、ユーザーインターフェイスを構築するための効率的で柔軟な方法を提供するため、シングルページアプリケーション(SPA)を構築するための好ましいツールです。 1)コンポーネント開発:複雑なUIを独立した再利用可能な部分に分割して、保守性と再利用性を向上させます。 2)仮想DOM:仮想DOMと実際のDOMの違いを比較することにより、レンダリングパフォーマンスを最適化します。 3)状態管理:状態および属性を介したデータフローを管理して、データの一貫性と予測可能性を確保します。

React:Web開発のためのJavaScriptライブラリの力React:Web開発のためのJavaScriptライブラリの力Apr 18, 2025 am 12:25 AM

Reactは、メタがユーザーインターフェイスを構築するために開発したJavaScriptライブラリであり、そのコアはコンポーネント開発と仮想DOMテクノロジーです。 1。コンポーネントと状態管理:Reactは、コンポーネント(関数またはクラス)とフック(UseStateなど)を介して状態を管理し、コードの再利用性とメンテナンスを改善します。 2。仮想DOMとパフォーマンスの最適化:仮想DOMを介して、実際のDOMを効率的に更新してパフォーマンスを向上させます。 3.ライフサイクルとフック:フック(使用効果など)は、関数コンポーネントがライフサイクルを管理し、副作用操作を実行できるようにします。 4。使用例:基本的なHelloworldコンポーネントから高度なグローバル州管理(USECONTEXTおよび

Reactのエコシステム:ライブラリ、ツール、およびベストプラクティスReactのエコシステム:ライブラリ、ツール、およびベストプラクティスApr 18, 2025 am 12:23 AM

Reactエコシステムには、状態管理ライブラリ(Reduxなど)、ルーティングライブラリ(Reactrouterなど)、UIコンポーネントライブラリ(材料-UIなど)、テストツール(JESTなど)、およびビルディングツール(Webpackなど)が含まれます。これらのツールは、開発者がアプリケーションを効率的に開発および維持し、コードの品質と開発効率を向上させるのを支援するために協力します。

反応とフロントエンドの開発:包括的な概要反応とフロントエンドの開発:包括的な概要Apr 18, 2025 am 12:23 AM

Reactは、ユーザーインターフェイスを構築するためにFacebookが開発したJavaScriptライブラリです。 1. UI開発の効率とパフォーマンスを改善するために、コンポーネントおよび仮想DOMテクノロジーを採用しています。 2。Reactのコア概念には、コンポーネント化、状態管理(UseStateやUseEffectなど)、および仮想DOMの作業原則が含まれます。 3。実際のアプリケーションでは、基本的なコンポーネントレンダリングから高度な非同期データ処理へのReactサポートがサポートされます。 4.主要な属性の追加や誤ったステータスの更新を忘れるなどの一般的なエラーは、ReactDevtoolsとログを介してデバッグできます。 5.パフォーマンスの最適化とベストプラクティスには、React.Memo、コードセグメンテーション、コードの読み取り可能な状態を維持し、信頼性を維持することが含まれます

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境