-
$event,方法占位符;e.preventDefault阻止默认行为;e.stopPropagation:阻止冒泡
-
事件正常经历的阶段是事件捕获->事件冒泡(默认情况下事件冒泡的时候才处理事件)-给一个事件加上捕获模式,他在捕获阶段就触发事件。
-
wheel鼠标滚轮事件 scroll滚动条事件
-
键盘事件 keydown keyup
-
Vue开发者工具,页面没用到,开发者工具现在是不更新的
-
计算属性不能开启异步任务维护数据
-
定时器的回调是js引擎调的,普通函数:this指的是window;箭头函数:没有自己this,往外找,找到vm实列
-
Math.floor(Math.random()*3)随机生成0、1、2
-
vue中template只能配合v-if ,不能配合v-show,v-show=false,不生效
-
一个字符串是包含空字符的 往往第一个位置是0
-
vue注解可以通过//#region //#endregion 可以折起来
-
slice、filter、map、concat:返回一个新数组,reduce、join、这些都是有返回,不会改变原数组
-
push、unshift、pop、shift、splice、sort、revert:会修改原数组且在vue中会触发响应式。forEach可以修改原数组
-
sort(a,b=>a-b)升序,b-a降序;
-
arr.reduce(function(prev, cur, index, arr) {return prev + cur;},0)
-
vue提供了个api set 可以维持响应式Vue.set(target,key,Value) ,vm.$set 一样, vue只能给data的某个属性追加属性,不能给data追加属性—响应式
-
vue;v-for循环的时候需要过滤,最好用计算属性,用数组的方法可能在一些小程序开发出现问题。比如字节、飞书
-
验证一个元素是真实dom 可以用 console.dir||或者判断是否(a instanceof HtmlElement)
-
指令命名多个单词的命名,kebab-case命名(user-name)、camelCase命名(userName)驼峰命名
-
vue中data必须写成函数?避免组件被复用时,数据存在引用关系。
-
props优先级高于data;mixins使用时,生命周期,混入优先级高,其他地方自身优先级高;Watch和 computed的优先级是watch慢
-
uuid是个全球通用的 不可能重复的id,简化版本nanoid (小很多)
-
修改对象中的值(es6) var obj ={…a,…b} 重复的用后面的对象里面的数据,合并对象;解构赋值 {data:ret}=res 获取对象的data赋值给ret
-
组件之间通信
1.props
父->子 props
子->父 props 方法,调用父组件方法回调
2.自定义事件 $emit
3.全局事件总线
4.消息订阅与发布(pubsub,例)
5.依赖注入(provide和inject)
6.vuex
7.v-attrs
8.缓存
9. p a r e n t 和 parent和 parent和children
10.ref
-
插槽,子向父传数据。父:scope=‘child’ 就可以用child.game;子: scope=“{game}“或者slot-scope=”{game}”
-
脚手架main.js中会让导入都上升到最顶部
-
vue2中,vuex与vue-router用3版本,vue3用4版本
-
路由守卫的执行顺序beforeRouteLeave->beforeEach->beforeEnter->beforeRouteEnter->afterEach
-
vue2中,vuex与vue-router用3版本,vue3用4版本
-
绝对定位(absolute),将元素依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位,原来的位置会被后面的内容占据。绝对定位的元素脱离文档流,margin属性值无效。相对定位的元素不会脱离文档流,占用文档流的空间,Left; Right; Top和Bottom属性与margin属性混合使用会产生累加效果。
-
单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式
单例模式有 3 个特点:
- 单例类只有一个实例对象;
- 该单例对象必须由单例类自行创建;
- 单例类对外提供一个访问该单例的全局访问点;
-
vue配置了axios.defaults.baseURL;使用axios的时候,某个界面要写完整的地址。
import axios from ‘axios’
// 由于我们现在获取的地图矢量数据并不是后台数据, 所以咱们不能使用this. h t t p ( m a i n . j s 配置的, V u e . p r o t o t y p e . http(main.js配置的,Vue.prototype. http(main.js配置的,Vue.prototype.http = axios)
const ret = await axios.get(‘http://localhost:8999/static/map/china.json’) -
接口取消
1
export function getDocumentList(params,f) {
return request({
url: `/sale-project/project/project-document-list`,
method: 'get',
params,
cancelToken:f
})
}
2
cancelRequest() {
if (typeof this.cancelFun === 'function') {
this.cancelFun()
}
},
this.cancelRequest();
let params = this.ArrayToString(this.searchForm)
getListMilestoneTaskFollow(params,new axios.CancelToken((c) => {
this.cancelFun = c
}))
转载:https://blog.csdn.net/qq_38799387/article/details/125856773