Vue知识点总结

1.什么是vue

一套用于构建用户界面的渐进式javascript框架。

补充:构建用户界面(将数据转化为界面) 渐进式:(简单应用:只需引入轻量小巧的vue核心库。复杂应用:可引入各式各样的vue插

2.vue的特点

①组件化,提高代码复用率和可维护性
②声明式编程,无需直接操作DOM,提高开发效率
③使用虚拟DOM+diff算法,尽量复用DOM节点

3.el与data两种写法

① el:"#root" ② v.$mount("#root")
data:对象或者函数形式

4.MVVM模型

M:模型 (model):对应data中的数据
V:视图(view):模板
VM:视图模型 :Vue实例 :用于数据绑定,DOM监听

5.数据代理

(1)定义:通过一个对象代理另一个对象中属性的操作(读/写)

6.事件使用

6.1 点击事件

用指令v-on:click = " 事件名 ",简写@click = " 事件名 "来写。
可以传参,可不传参,不传参时事件调用可以不添加括号。
methods中配置的函数不要用箭头函数,this为vue实例,否则不为vm了
本身自带参数event,可在methods函数中直接使用。既想用到event参数,又想传其它参数时,必须在触发事件函数时写出参数为$event和其它参数,且调用顺序和定义顺序一致。
(2)事件修饰符
.prevent :阻止事件默认行为
.stop: 阻止事件冒泡
.once:事件只触发一次
.capture:事件捕获
.self:当event.tagert是当前元素时才调用

6.2 键盘事件

在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

为了在必要的情况下支持旧浏览器,Vue 提供了绝大多数常用的按键码的别名:

.enter
.tab(只能绑定到keydown事件上)
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
②capsLock修饰符写成caps-lock
③ 系统修饰键

.ctrl
.alt
.shift

.meta

6.3.事件与事件流

 [事件]

    JavaScript中的事件,可以理解就是在HTML文档或者浏览器中发生的一种交互操作

    使得网页具备互动性。

    常见的有加载事件、鼠标事件。

    [事件流]

    由于DOM是一个树结构,如果在父子节点绑定事件时候,当触发子节点的时候,

    就存在一个顺序问题,这就涉及到了事件流。

    页面触发一个事件时,会按照一定的顺序来响应事件,事件的响应过程为事件流。

    [js的事件流三阶段]

    事件捕捉阶段(capture phrase): 事件开始由顶层对象触发,然后逐级向下传播,直到目标元素;

     处于目标阶段(target phrase): 处于绑定事件的元素上;

    事件冒泡阶段(bubbling phrase): 事件由具体的元素先接收,然后逐级向上传播,直到不具体的元素

    (事件捕获是从上到下,而事件冒泡,是从下到上。)

     事件冒泡和事件捕获分别由微软和网景公司提出,是为了解决页面中事件流(事件发生顺序)的问题。

    [事件冒泡] :

    微软提出了名为事件冒泡(event bubbling)的事件流。

    事件冒泡可以形象的比喻成把一颗石头投入水中,泡泡会一直从水底冒出水面。

    也就是说,事件会从最内层的元素开始发生,一直向上传播,直到document对象。

     因此在事件冒泡的概念下在button按钮发生click事件的顺序应该是

    button-div-body-html-document。

    [事件捕获]:

    网景提出另一种事件流名为事件捕获(event capturing)

    与事件冒泡相反,事件会从最外层开始发生,直到具体的元素。

    因此在事件捕获的概念下在button按钮发生click事件的顺序应该是 

7.计算属性

(1)基础理解
  1. 定义:通过已有的属性计算出来
  2. 原理:底层借助了Object.defineProperty的getter和setter
  3. 优势:内部有缓存机制,效率更高,调试方便
  4. 备注:计算属性最终都会出现在vm身上,它的值为getter中返回的值

8.监视属性

(1)基础理解
(2)深度监视
(3)简写形式
(4)computed与watch对比

computd能实现的,watch一定能实现,watch能实现的,computed不一定能实现。例如watch能实现异步操作
vue所管理的函数写成一般函数,不是vue所管理的函数写成箭头函数,例如setTimeout。这样写是为了保证this指向为vue实例

9.class、style样式

9.1 class样式

(1)一般绑定

2)数组形式绑定

(3)对象形式绑定

9.2 style样式

10. 条件渲染


(1)v-if

写法:v-if=“表达式”,v-else-if=“表达式”,v-else=“表达式”
适用场景:切换频率较低
特点:不展示的DOM元素直接被剔除 ,不能再获取到DOM节点
注意:v-if与v-else-if,v-esle一起使用时,结构不能被打断
可以与template搭配使用

(2)v-show

写法:v-show=“表达式”
适用场景:切换频率较高
特点:不展示的DOM元素不是被剔除,而是用css样式display:none隐藏掉

11. 列表渲染


(1)基本列表


语法:v-for="(item,index) in object"

(2)key的作用
  • 以id作为key的值
  • 以index作为key的值
  • key是虚拟DOM对象的标志,当数据发生变化时,vue会根据新数据生成新的虚拟DOM
    vue进行新旧虚拟DOM对比
    若旧虚拟DOM中找到了与新虚拟DOM中相同的key,若虚拟DOM中内容没变,则直接使用之前的真实DOM,若内容改变,则生成新的真实DOM
    若旧虚拟DOM中未找到与新虚拟DOM中相同的key,则直接生成新的真实DOM
  • 12. vue中数据监测

  • 1. vue会监视data中所有层次的数据。
    2. 如何监测对象中的数据?

    通过setter实现监视,且要在newVue时就传入要监测的数据。

    (1).对象中后追加的属性,Vue默认不做响应式处理

    (2).如需给后添加的属性做响应式,请使用如下API:

    Vue . set(target, propertyName/index, value) 或

    Vm . $set(target, propertyName/ index, value)

    3.如何监测数组中的数据?

    通过包裹数组更新元素的方法实现,本质就是做了两件事:

    (1).调用原生对应的方法对数组进行更新。

    (2).重新解析模板,进而更新页面。

    4.在Vue修改数组中的某个元素一定 要用如下方法:

    1.使用这些API:push()、pop()、shift()、 unshift()、splice()、 sort()、reverse()

    2.Vue .set()或vm. $set()

    13. 内置指令

    12. 1 v-text

    文本指令

  • 12. 2 v-html
  • 12. 2 v-cloak
    本质是个特 殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性。
    配合css使用可解决网络慢而导致页面显示不正确的问题:css中: [ v-cloak ] { disp;ay:none}
    11. 3 v-once
    v-once所在节点在初次动态渲染后,就视为静态内容了
    以后数据改变不会引起页面的更新
    11. 3 v-pre
    可以让vue跳过所在节点的编译过程
    可利用它跳过没有使用插值语法,指令语法的节点,会加快编译
  • 13. 自定义指令

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值