Vue (快速理解)

289 阅读3分钟

Vue是什么

用于构建用户页面的渐进式开源javascript框架 也是一个创建SPA单页应用的Web应用框架,Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互

渐进式代表的含义是:主张最少, 自底向上, 增量开发, 组件集合, 便于复用

特性 : 数据驱动(MVVM),组件化开发,特殊的指令系统

MVVM是什么

MVVM(模型, 视图, 视图模型双向关联的一种设计模式)
MVVM好处: 减少DOM操作, 提高开发效率

Vue指令

以v-开头的标签属性, 叫指令, 给标签添加额外功能

  1. v-bind 简写 " : "

  2. v-on和修饰符 简写 " @ "

  3. v-model和修饰符

  4. v-text和v-html

  5. v-show和v-if以及v-else

  6. v-for

虚拟DOM是什么

本质就是一个JS对象, 保存DOM关键信息

虚拟DOM好处:

提高DOM更新的性能, 不频繁操作真实DOM,

在内存中找到变化部分, 再更新真实DOM(打补丁)

diff算法 key

key值要求:

唯一不重复的字符串或者数值.

key应该怎么用?

有id用id, 无id用索引

key的好处:

可以配合虚拟DOM提高更新的性能

侦听器 watch

如何侦听一个对象/数组

把侦听器写成对象形式, 给handler方法和deep:true

侦听器函数马上执行

deep: true

<template>
-   <div>
    用户名: <input type="text" v-model="user.name">
  </div>
</template>

export default {
  data() {
    return {
      user: {
        name: 'zs'
      }
    }
  },
  watch: {
    //侦听器 只有user 变量的值发生了变化 对应的 侦听器 就会被触发
    user: { 
      deep: true,  //开启 深度监听
      handler(newVal) {
        console.log(newVal.name)
      }
    }
  }
}

Vue组件概念

.vue文件,可复用的 vue, html,样式,js

遇到重复标签, 可复用的时候封装组件

组件好处:重复利用,各自独立, 互不影响

组件之间通信

父组件A通过props的方式向子组件B传递,B 传 A 通过在 B 组件中 $emit, A 组件中 v-on 的方式实现。

vue生命周期

  • 什么是生命周期?

Vue实例,从 创建 销毁 的整个过程就是 - 生命周期

  • 钩子函数有哪些?

初始化 / 挂载 / 更新 / 销毁

作用: 特定的时间点,执行特定的操作

场景: 组件创建完毕后,可以在created 生命周期函数中发起Ajax 请求,从而初始化 data 数据

分类: 4大阶段8个方法

refs,refs, nextTick作用

ref 作用:给标签或者组件添加一个标记(引用)

this.$refs 作用:获取当前组件中所有的ref引用

  • 2种方式获取原生DOM标签

1. 目标标签 – 添加id / ref

2. 恰当时机, 通过id / 通过ref属性 获取目标标签

  • 如何获取组件对象呢?

目标组件添加ref属性

this.$refs.名字 获取组件对象

  • 拿到组件对象能做什么?

调用组件里的属性/方法

vue插槽使用

  • 默认插槽

子组件用<slot>标签来确定渲染的位置,标签里面可以放DOM结构,当父组件使用的时候没有往插槽传入内容,标签内DOM结构就会显示在页面

父组件在使用的时候,直接在子组件的标签内写入内容即可

  • 具名插槽

子组件用name属性来表示插槽的名字,不传为默认插槽

父组件中在使用时在默认插槽的基础上加上slot属性,值为子组件插槽name属性值

  • 作用域插槽

子组件在作用域上绑定属性来将子组件的信息传给父组件使用,这些属性会被挂在父组件v-slot接受的对象上

父组件中在使用时通过v-slot:(简写:#)获取子组件的信息,在内容中使用

路由系统

- 基本使用步骤

  1. 安装

yarn add vue-router

  1. 引入

import VueRouter from 'vue-router'

  1. 使用插件

Vue.use(VueRouter)

  1. 创建路由实例

const router = new VueRouter()

  1. 关联到vue实例

new Vue({router: router})


- 配置路由规则

通过routes配置规则

new VueRouter({routes: [ {path: '', component: ''} ]})

指定路由的出口

router-view

重定向

redirect

404页面

模式

hash

history

- vue-router路由系统

  1. vue-router 本质是什么?

第三方包, 下载后集成到vue项目中

  1. vue-router如何使用?

下包/引入/注册/规则/路由对象/注入/挂载点

  1. 规则如何生效?

切换url上hash值, 开始匹配规则, 对应组件展示到

router-view位置