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、当父组件的方法触发,数据作用这个方法的第一个参数