掌握以下vue2知识后,更有时间摸鱼了,以前2天的工作量,现在半天就搞完

简介: vue2项目维护,你不能不知道的知识点

生命周期函数

1.beforeCreate

2.created

3.beforeMounte

4.mounted

数据渲染到页面上,并可以通过dom访问。

5.beforeUpdate

6.updated

7.beforeDestory

断开与子组件的联系,摧毁组件本身。

销毁所有子组件,然后销毁组件本身,最后销毁vue实例。一般当中做一些清理工作。

8.destoryed

常用指令

  1. v-model
  2. v-bind
  3. v-on
  4. v-show
  5. v-if、v-else-if、v-else
  6. v-for 注意:与v-if使用的时候,v-for有更高的优先级
  7. v-html
  8. v-text
  9. v-once
  10. v-slot 注意,只能绑定在template上。

v-model 实现原理

自定义事件

1.使用场景:作用与 input 标签上

使用方法

model: {
  prop: "value",
  event: "change"
},
props: {
  value: {type: String, default: ""}
}
template: `
    <input
      type="checkbox"
      v-bind:checked="checked"
      v-on:change="$emit('change', $event.target.checked)"
    >
  `

.sync 的实现原理

.sync修饰符
// 子组件
this.$emit('update:title', newTitle)
// 父组件
title.sync="title"

特殊属性

1. is

用于动态组件 用于指定组件, 与component配合使用

// 目录结构
|
|-parts
|--Comp.vue
|-index.vue
// index.vue
<template>
  <component is="Comp">
</template>
import Comp from "./parts/Comp.vue";

components: {Com}

2. ref

用于指定组件实例,可以通过 ref 来直接组件实例的属性和触发方法等。

// 子组件 Child.vue
data() {
  return {
    aaa: "aaa"
  }
},
methods: {
  getAaa() {
    //一些操作
  }
}

// 父组件 
<template>
  <child ref="child">
</template>
mounted() {
  this.$refs.child.aaa;
  this.$refs.getAaa()
}

组件通讯

1.父组件传子组件

  1. props
  2. refs
  3. children

2.子组件向父组件通讯

  1. $emit('fnName', sth)
  2. $parent

3.多层组件通讯

其中provide与injects需要配套使用。

1. provide

// 一般用于父组件,是个函数 
provide(): {
  return {elForm: this}
},

2. injects

// 一般用于子组件,值可以是对象与数组
// 1.数组
injects: ["elForm"]
// 2.对象
injects: {
  elForm: { default: '' }
}

3. eventBus

多个组件在一个vue实例下,就可以通过

4. vuex

vue官网

四个重要核心概念:

  1. state
  2. getter
  3. mutations: mutation 必须是 同步函数
  4. actions: 提交的是 mutation ,而不是直接变更状态;可以包含任意异步操作
  5. module: 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter。每个模块使用 namespaced: true 来使其变成带有命名空间的模块,各命名默认根据模块注册的路径调整

5. sessionStorage、localStorage、cookies

值得注意的是,两者的存储大小一般为5M

watch与computed

computed

计算属性,依赖其他字段和数据获取;只有依赖项发生变化才会更新

computed: {
  sth() {
    return this.name + "a"
  },

  sthB: {
    get: function() {
      return this.name + "b"
    },
    set: function(val) {
      this.name = val.split(" ")[0]
    }
  }
}

watch

主动监听某个字段的变化

watch() {
  name(val) {
    this.aaa = val
  },
  nameB: function(newVal, oldVal) {},
  nameC: {
    handler: "methodA",
    immediate: true, //收集响应式依赖时,立即执行
    deep: true, //深度响应
  }
},
methods: {
  methodA(val) {}
}

插槽

  1. slot
  2. slotScoped

渲染函数

渲染函数与jsx

推荐的前置知识 虚拟dom

render(h, ctx) {
// h相当于createElement(),
// ctx即创建的上下文

}

响应式原理

1. defineProperty

2.对象

this.$set(object, propertyName, value)

3.数组

  1. this.$set(object, propertyName, value)
  2. this.splice(indexOfItem, 1, newValue)

内置组件

1. component

2. transition

用于单个元素或组件的过渡。 详情见

3. transition-gropu

作为多个元素/组件的过渡效果, 注意:每个 <transition-group> 的子节点必须有独立的 key

4. keep-alive

<keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。 详情见

keep-alive的2个组件周期函数

  1. activated
  2. deactivated

相关文章
|
编解码 移动开发 安全
如何让你的APP变小及手机各屏幕尺寸
如何让你的APP变小及手机各屏幕尺寸
370 0
|
数据采集 机器学习/深度学习 数据挖掘
使用Python进行数据预处理与清洗的最佳实践
本文探讨了Python在数据预处理和清洗中的关键作用。预处理包括数据收集、整合、探索、转换和标准化,而清洗则涉及缺失值、重复值、异常值的处理及数据格式转换。文中提供了使用pandas库进行数据读取、缺失值(如用平均值填充)和重复值处理、异常值检测(如IQR法则)以及数据转换(如min-max缩放)的代码示例。此外,还讲解了文本数据清洗的基本步骤,包括去除标点、转换为小写和停用词移除。整体上,文章旨在帮助读者掌握数据预处理和清洗的最佳实践,以提高数据分析的准确性和效率。
2125 2
|
缓存 Java 数据库连接
SpringBoot整合MyBatis注解版并开启二级缓存
SpringBoot整合MyBatis注解版并开启二级缓存
572 1
|
机器学习/深度学习 编解码 数据可视化
即插即用 | 高效多尺度注意力模型成为YOLOv5改进的小帮手
即插即用 | 高效多尺度注意力模型成为YOLOv5改进的小帮手
900 1
|
算法 安全 API
加密狗是什么呢?
加密狗是什么呢?
585 0
|
算法 数据安全/隐私保护 人工智能
|
搜索推荐 5G 新制造
华为星闪联盟:引领无线通信技术创新的先锋
星闪(NearLink),是由华为倡导并发起的新一代无线短距通信技术,它从零到一全新设计,是为了满足万物互联时代个性化、多样化的极致、创新体验需求而诞生的。这项技术汇聚了中国300多家头部企业和机构的集体智慧,华为更是其中的主要贡献方。
540 2
|
存储 关系型数据库 MySQL
MySQL部署PXC集群(很详细)
MySQL部署PXC集群(很详细)
1374 0
|
缓存 JavaScript Nacos
Vue 报错整理:npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\jinchuang\AppData...
我是在npm install的时候出现的这个问题,开始是安装不上,提示升级npm,然后我按要求升级npm i npm 依然报错 解决方法:1. 删除本地node_modules 依赖包2. 执行 npm cache clean --force 清理缓存3. npm install。
1366 0
|
存储 缓存 Java
案例23——-注册上nacos上的部分服务总是出现频繁掉线的情况
案例23——-注册上nacos上的部分服务总是出现频繁掉线的情况