07 事件处理

1. 事件的基本使用

事件的基本使用:
1.使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名;
2.事件的回调需要配置在methods对象中,最终会在vm上;
3.methods中配置的函数,不要用箭头函数!否则this就不是vm了;
4.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm 或 组件实例对象;
5.@click=“demo” 和 @click="demo( e v e n t ) " 效 果 一 致 , 但 后 者 可 以 传 参 ; 其 中 event)" 效果一致,但后者可以传参;其中 event)"event被称为占位符。


<html>
	<head>
		<meta charset="UTF-8" />
		<title>事件的基本使用title>
		
		<script type="text/javascript" src="../js/vue.js">script>
	head>
	<body>
		
		
		<div id="root">
			<h2>欢迎来到{{name}}学习h2>
			
			<button @click="showInfo1">点我提示信息1(不传参)button>
			<button @click="showInfo2($event,66)">点我提示信息2(传参)button>
		div>
	body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		const vm = new Vue({
			el:'#root',
			data:{
				name:'尚硅谷',
			},
			methods:{
				showInfo1(event){
					// console.log(event.target.innerText)
					// console.log(this) //此处的this是vm
					alert('同学你好!')
				},
				showInfo2(event,number){
					console.log(event,number)
					// console.log(event.target.innerText)
					// console.log(this) //此处的this是vm
					alert('同学你好!!')
				}
			}
		})
	script>
html>

2. 事件修饰符


<html>
	<head>
		<meta charset="UTF-8" />
		<title>事件修饰符title>
		
		<script type="text/javascript" src="../js/vue.js">script>
		<style>
			*{
				margin-top: 20px;
			}
			.demo1{
				height: 50px;
				background-color: skyblue;
			}
			.box1{
				padding: 5px;
				background-color: skyblue;
			}
			.box2{
				padding: 5px;
				background-color: orange;
			}
			.list{
				width: 200px;
				height: 200px;
				background-color: peru;
				overflow: auto;
			}
			li{
				height: 100px;
			}
		style>
	head>
	<body>
		
		
		<div id="root">
			<h2>欢迎来到{{name}}学习h2>
			
			<a href="http://www.atguigu.com" @click.prevent="showInfo">点我提示信息a>

			
			<div class="demo1" @click="showInfo">
				<button @click.stop="showInfo">点我提示信息button>
				
				
			div>

			
			<button @click.once="showInfo">点我提示信息button>

			
			<div class="box1" @click.capture="showMsg(1)">
				div1
				<div class="box2" @click="showMsg(2)">
					div2
				div>
			div>

			
			<div class="demo1" @click.self="showInfo">
				<button @click="showInfo">点我提示信息button>
			div>

			
			<ul @wheel.passive="demo" class="list">
				<li>1li>
				<li>2li>
				<li>3li>
				<li>4li>
			ul>

		div>
	body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			data:{
				name:'尚硅谷'
			},
			methods:{
				showInfo(e){
					alert('同学你好!')
					// console.log(e.target)
				},
				showMsg(msg){
					console.log(msg)
				},
				demo(){
					for (let i = 0; i < 100000; i++) {
						console.log('#')
					}
					console.log('累坏了')
				}
			}
		})
	script>
html>

3. 键盘事件


<html>
	<head>
		<meta charset="UTF-8" />
		<title>键盘事件title>
		
		<script type="text/javascript" src="../js/vue.js">script>
	head>
	<body>
		
		
		<div id="root">
			<h2>欢迎来到{{name}}学习h2>
			<input type="text" placeholder="按下回车提示输入" @keydown.huiche="showInfo">
		div>
	body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		Vue.config.keyCodes.huiche = 13 //定义了一个别名按键

		new Vue({
			el:'#root',
			data:{
				name:'尚硅谷'
			},
			methods: {
				showInfo(e){
					// console.log(e.key,e.keyCode)
					console.log(e.target.value)
				}
			},
		})
	script>
html>

你可能感兴趣的:(#,Vue学习,前端学习,vue,javascript)