前言:这篇文章主要讲述基础和基础之外,一些零碎的知识,以及部分vue知识的实现原理。
第一节 指令
1.一些简单的代码,直接可以在指令处做;如:@click="isEditing = !isEditing"
2.避免v-for和v-if在一起使用 。v-for 比 v-if 具有更高的优先级, 虽然用起来也没报错好使, 但是性能不高, 如果你有5个元素被v-for循环, v-if也会分别执行5次.
3.v-for只能检测到会改变数组的方法,不改变原数组的方法,检测不到。arr[0]这种的检测不到。
4.动态设置class或style=>v-bind:class/style
5.v-model是 是v-bind value 和 v-click input 语法糖
第二节 小技巧
1.灵活使用逻辑运算符,如:ABC:1 || oop 以及三元表达式,尤其是运用在v-系列命令中和变量中:class="{red: idx===curIdx}"如果 idx===curIdx成立,就有一个类red
2.数据驱动视图是异步的,经常和$nextTick()使用,它的作用等待试图更新后做什么,是一个微任务
3.data里定义的就有响应式效果,data 是一个函数的形式,目的是避免变量污染,利用函数的作用域
4箭头函数 简写要带()不然箭头函数当成函数大花括号了【重点注意,有时因为带括号函数不生效】
5.一个函数加上(async)异步函数返回primise对象。用then拿到
6.变量不写在data中不会被更新--并且this.变量名=函数之类的 可以直接写,因为this 是个对象,不用定义,可以直接使用
7.git restore 冲突恢复
8.全局样式单独放到文件引入到main.js--局部的用scoped
9.人为丢错误--自定义错误--throw new Error
10.路由是地址的切换--而动态组件没有地址切换,页面上的局部有切换
11.什么时候封装?--要复用-好管理代码
12.!!变量名 --强制转成布尔值
13.$router.back()点击后退
14.全局替换在vscode 中第二个搜索框
15.二级路由的使用场景:1.页面非常复杂,需要多个组件一起呈现内容2多个页面共同使用的部分
16.path:‘/tt/:id’动态路由
17.查看动态路由和qurey:vue调试工具,data-query\params
18.90%的Ajax请求错误都是传参错误
19.Window.confirm提示框
20.path和fullpath --fullpath里面有参数信息,path没有参数信息
21.浏览器自带URL解码的api 可以把参数转化成编码
22.拦截器一定要有return,把结果告诉别人
23.父子组件双向绑定-v-model
24.template 可以对多个元素包裹,只是逻辑上的容易,真正渲染的时候不会产生任何dom
25.props完整写法中,如果是引用类型, 则在设置默认值必须以函数格式返回
26.data 保存变量,变量可以是对象保存很多信息。如年龄姓名电话等多个信息,通常会当参数传给axaios.
27.在一个.js模块中使用vuex就直接把它import即可(在vue组件中用this.$store.state)
第三节 组件通信
1. 子传父 可以带参数也可以不带,带参数就是传数据给父组件,不传参数就是通知父组件,让父组件去做,然后父组件使用自己的回调函数去处理
2.组件的划分一般可以参考结构
3.props完整版写法,如果是复杂类型,默认值就通过一个函数返回
第四节 生命周期
第五节 axios
第六节 插槽
第七节 异步
第八节 路由
1.跳转方式:1.编程式跳转 2路由跳转3.其他跳转
2.路由可以传参--父子传参
3路由跳转-注意冒泡发生
4.二级路由--path不要写/ 如果要写/带上父路由的path路径【一般直接写二级路由的名就行】
5.router-view 必须有,他是挂载点
6.动态路由指的就是path路径上传值, 前提需要路由规则了提前配置/path/:key名, 可以写多个用/隔开, 获取使用$route.params.key名来提取对应用路径传过来的值,一般用作详情页
总结:。。