7.26事件

214 阅读1分钟

vue:

特征1:指令系统

特征2:组件化

特征3:模块化

特征4、工程化

特征5、全栈化

React(中)、Angular(高)

vue实例配置:

el:必须的 vue实例管理边界

data:数据模型

methods:方法

computed:计算属性

filters:过滤器

components:组件

钩子函数:vue的生命周期(不需要我们自己调用,vue在合适时机自己调用)

指令:

数据绑定

v-text {{}}

v-html

v-bind

双向绑定:

v-model

条件指令 v-if 、v-else、v-else-if

v-show

循环指令 v-for

两个特殊属性:class、style

新学:

事件模型

事件三要素:事件源、事件类型、监听器

btn.onclick=function(){}

v-on:处理事件 简洁写:@

事件类型:

鼠标事件:click、dblclick、mouseover,mouseout,mouseenter,mouseleave,mousedown,mousemove,mouseup

键盘事件:keyup、keydown、keypress

UI事件:scroll、resize、load、unload

焦点事件:focus.blur

表单事件:change、submit

事件处理函数:

把事件处理函数写在标签中

<span v-on:click="isshow=!isshow">{{isshow? 收起 :展开}}</span>

把事件处理函数写在methods中 常规写法

传字面量 v-on:click="f1('world')"

传变量

<button v-for="(value,key,index) in 3" v-on:click="f2(value)">{{按钮:value}}</button>

事件对象

当事件发生时,在事件对象中保留了很多信息,如点击时的坐标信息

$event 事件对象 固定名字

阻止默认事件: <a href="http://www.baidu.com">百度</a> a标签有默认事件 阻止事件冒泡:

事件默认情况下会传播,可以从里向外,也可以从外到里

从里到外即冒泡机制

事件修饰符

之前阻止默认事件写法:

a标签事件阻止

a.preventDefault()

<a href="javascript:void(0)"></a>

阻止冒泡

a.stopPropagation()

vue中通过修饰符写法:

@click.prevent="f1"

常用的修饰符

用法@click.stop 也可以同时使用多个修饰符:@click.stop.once

stop:阻止冒泡(写在儿子上)

prevent:阻止默认事件

capture:冒泡改为捕获(父、儿同时都要写)

once:只执行一次

self:只处理自己身上发生的事情,不理会冒泡或捕获

把self放到谁身上,谁就不会触发(可以放在父上用来阻止冒泡)

按键修饰符:keycode

下午:

组件

组件就是标签; 根组件:VM let vm=new Vue()

后面定义的所有组件都是VM的子组件

分类:全局组件、局部组件

全局组件:利用静态方法component()定义一个全局组件

有一个属性template,在所有vue实例中都可用

全局注册:Vue.component("my-head",{template...)

局部注册

使用组件基本流程:

1、定义一个组件对象,只是一个普通对象,只是里面有一个template属性

2、注册组件

3、使用组件

组件中的三个名字

1、定义组件对象时的名字(没有要求)

2、注册时的名字(没有要求,一般和定义时的一样)

3、使用时的名字(不能使用大写,必须是小写,需要把注册时的大驼峰转换成中划线命名)

组件之间的通信(数据传输)

默认数据不能再父与子之间共享

父子组件之间的数据传输:

父传子

子传父

父传子

1、确保父中有数据

2、在父组件的模板中通过属性绑定把数据绑在子组件中

3、在子组件中定义props属性,用来接收父传递过来的数据

4、在子组件的模板中就可以使用父传递过来的数据

子传父

1、在父组件模板中给子组件添加一个事件监听

2、在子组件中,某个时间通过this.$emit发出这个事件,发出事件的同时可以携带数据

3、当父组件的方法触发,数据作用这个方法的第一个参数