目录
什么是冒泡事件

stop :阻止单击事件冒泡
once : 只执行一次
v-on:keyup.键盘上任意键="事件名" :键盘按键事件
v-on:submit.prevent="onSubmit" :提交事件不再重载页面
案例:
- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>title>
-
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
- head>
- <style>
- .red{
- width: 400px;
- height: 400px;
- background-color: red;
- }
- .blue{
- width: 300px;
- height: 300px;
- background-color: skyblue;
- }
- .yellow{
- width: 200px;
- height: 200px;
- background-color: yellow;
- }
- .green{
- width: 100px;
- height: 100px;
- background-color: green;
- }
- style>
- <body>
-
- <div id="app">
- <p>冒泡事件p>
- <div class="red" @click="red">
- <div class="blue" @click.stop="blue">
- <div class="yellow" @click="yellow">
- <div class="green" @click.stop="green">div>
- div>
- div>
- div>
- <p>提交答案p>
- <button @click.once="dushi">{{btnv}}button>
- <p>按键事件p>
- <input v-on:keyup.enter="dushi2" id="in"/>
- div>
- body>
- <script type="text/javascript">
- //绑定界面
- new Vue({
-
- el:'#app',
- data(){
- return {
- btnv:'提交'
- }
- },
- methods:{
- red(){
- console.log("red");
- },
- blue(){
- console.log("blue");
- },
- yellow(){
- console.log("yellow");
- },
- green(){
- console.log("green");
- },
- dushi(){
- console.log("已做完,提交答案");
- },
- dushi2(){
- console.log("文本框");
- }
- }
- })
- script>
- html>

- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>title>
-
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
- head>
- <body>
-
- <div id="app">
- <form v-on:submit.prevent="onSubmit">
- 姓名:<input v-model="uname"/><br>
- 密码:<input v-model="pwd"/><br>
- 性别:<input type="radio" v-model="sex" name="sex" value="1"/>男
- <input type="radio" v-model="sex" name="sex" value="2"/>女
- <br>
- 爱好:
- <span v-for="l in likes">
- <input type="checkbox" :value="l.id"/>{{l.name}}
- span><br>
- <label>成绩label>
- <select>
- <option value="-1">请选择option>
- <option v-for="l in types" :value="l.id">{{l.name}}option>
- select><br>
- 确认<input type="checkbox" v-model="flag" />
- <input type="submit" v-bind:disabled="show" v-on:click="doSubmit" value="提交"/>
-
- form>
- div>
- body>
- <script type="text/javascript">
- //绑定界面
- new Vue({
-
- el:'#app',
- data(){
- return {
- likes:[
- {id:1,name:'篮球'},
- {id:2,name:'排球'},
- {id:3,name:'桌球'},
- {id:4,name:'排球'}
- ],
- types:[
- {id:1,name:'差'},
- {id:2,name:'良'},
- {id:3,name:'优'}
- ],
- uname:null,
- pwd:null,
- flag:false
- }
- },
- computed: {
- show: function() {
- return !this.flag;
- }
- },
- methods: {
- doSubmit: function() {
- console.log('doSubmit')
- var obj = {
- uname: this.uname,
- pwd: this.pwd,
- age:this.age+10,
- sex: this.sex,
- likes:this.likes,
- types: this.types,
- }
- console.log(obj);
- }
- }
- })
- script>
- html>


template :定义
props :父传子参数
子传父
$emit :1.$emit 2.自定义事件 this.$emit('事件名',参数)
- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>自定义组件title>
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
- head>
- <body>
-
- <div id="app">
-
- <p>父组件 传参 给 子组件p>
- <mybutton m='zs' n='0'>mybutton>
- <p>子组件 传参 给 父组件p>
- <mybutton2 m='zs' n='0' @mymethod='xxx'>mybutton2>
- div>
- body>
- <script type="text/javascript">
- Vue.component('mybutton',{
- // template:'',
- template:'',//定义
- props:['m','n'],//父传子
- methods:{
- sub(){
- var name='张三';
- var sex="男";
- var age= 12;
- this.n++;
- console.log(name);
- console.log(sex);
- console.log(age);
- }
- }
- })
- Vue.component('mybutton2',{
- // template:'',
- template:'',//定义
- props:['m','n'],//父传子
- methods:{
- str(){
- this.n++;
- var name='张三';
- var sex="男";
- var age= 12;
- //子组件 将参数传递给父组件 的关键在于
- //1.$emit 2.自定义事件 this.$emit('事件名',.....)
- this.$emit('mymethod',{'name':name,'sex':sex,'age':age});//子传父
- }
- }
- })
- //外部组件
- new Vue({
-
- el:'#app',
- data(){
- return {
- msg:'想见你想见你想见你'
- }
- },
- methods:{
- xxx(a){
- console.log(a);
- }
- }
- })
- script>
- html>


