vue2简要描述

106 阅读5分钟

脚手架

​ 项目搭建工具 ​ 通用使用方法 ​ node包 ​ 使用步骤 ​ npm install 包名 -g ​ 使用 ​ 安装完成会得到一个命令 ​ vue ​ vue ​ @vue/cli ​ vue create 项目名 ​ npm run serve ​ vue.config.js ​ 为什么要用vue文件 ​ 更方便维护 ​ js作用域独立 ​ 样式配合scoped可以不冲突

插值表达式

​ 语法:{{表达式}} ​ 表达式有哪些 ​ 变量 ​ 属性 ​ user.name ​ 字符串、数字、布尔类型等等 ​ {{ "小明" }} ​ 四则运算 ​ {{ 10 * 30 }} ​ 方法调用 ​ {{ fn(date) }} ​ 表达式里的变量需要声明,在data方法的返回对象里

MVVM设计模式

​ 是什么 ​ Model ​ Model模型 ​ View ​ 视图 ​ VM ​ 视图模型 ​ 双向绑定 ​ 为什么用它 ​ 可以让我们专注数据,不必关心视图更新,提升开发效率

v-bind

​ 简写, :属性名="值" ​ on ​ 事件监听 ​ 监听DOM事件 ​ 监听组件事件 ​ $emit("event name", ...arg) ​ @事件名="监听函数" ​ 语法 ​ @click="少量代码" ​ @click="showDialog = true" ​ <input @click="hello" /> ​ hello第一个参数是什么 ​ 第一个参数是事件对象 ​ <user-info @change="hello"> ​ hello第一个参数 ​ 组件发送的参数

修饰符

​ 阻止冒泡 ​ @click.stop ​ 阻止默认行为 ​ @click.prevent ​ 只绑一次 ​ @click.once ​ @click="fn($event, item.id)"

v-model

​ 作用:双向绑定 ​ 修饰符 ​ 转数字 ​ v-model.number ​ 去掉左右空白符 ​ v-moidel.trim="'hello world'" ​ 懒触发 ​ 对于input,失去焦点更新变量

v-text和v-html

​ v-text ​ v-html ​ 把内容作为html解析 ​ 控制显示

v-if和v-show

​ v-if会创建、销毁内容 ​ v-show通过控制display属性控制显示和隐藏 ​ v-if可以和v-else-if和v-else

v-for

​ 语法: v-for=" item in list " :key ​ v-for="item in 10" ​ item从1开始 ​ v-for="(value, key) in obj" ​ v-for="str in string" ​ v-for="item of array" ​ key的作用是什么 ​ 提升数据对比更新的效率 ​ 提升列表渲染性能 ​ 动态设置样式 ​ style ​ :style="{ fontSize: '18px' }" ​ class ​ :class="{ 类名: 布尔值 }" ​ :class="[]"

过滤器

​ Vue.filter("名字", function (){}) ​ {{ date | formatter }}

计算属性

​ 作用:根据一些数据算出来的变量 ​ computed: { } ​ 完整写法 ​ set ​ 更新值 ​ get ​ 读取值 ​ computed: { age() {return 123; } } ​ 特性:依赖变量变化的时候会重新计算 ​ 缓存结果,只有依赖变化才重新运算,性能比较好

侦听器

​ watch: { } ​ watch: { nickname(newValue, oldValue) {}) ​ 完整写法 ​ deep ​ 深度监听,对象、数组 ​ immediate ​ 带着当前的值立即触发 ​ handler ​ 数据变化的时候执行 ​ 组件 ​ 如何创建组件 ​ 一个vue文件就是一个组件 ​ Vue.component ​ 如何使用 ​ 局部注册 ​ components: { '名字': 组件 } ​ 全局注册 ​ Vue.component("名字", 组件) ​ 为什么要封装组件 ​ 维护性 ​ 复用 ​ 提升开发效率

组件通讯

父子

​ :属性名="值" ​ props ​ 数组 ​ 对象 ​ type: 类型 ​ required ​ 必传参数 ​ default ​ 默认值 ​ 调用子组件方法 ​ ​ this.$refs.child.hello()

子父

​ 子组件只能向父组件发事件 ​ this.$emit('事件名', ...arg) ​ 插槽传数据出来 ​ ​ v-slot:插槽名="变量" ​ 变量.属性就可以获取组件传出来的参数

兄弟

​ 没有直接通讯的机制 ​ 两种方式 ​ Event bus ​ Vuex ​ 单向数据流 ​ 动态组件 ​ ​ 约等于v-if切换组件 ​ keep-alive ​ 作用:缓存组件 ​ 什么时候用 ​ 当渲染内容开销比较大的时候 ​ 避免频繁的创建和销毁组件 ​ 为了性能 ​ 用的时候注意 ​ 组件有两个钩子函数 ​ activated ​ 组件激活的时候 ​ deactivated ​ 失去激活状态的时候触发

插槽

​ 作用 ​ 组件内容允许调用者决定 ​ 往往是我们需要传入标签显示的时候 ​ 怎么用 ​ 默认插槽 ​ ​ 具名插槽 ​ ​ 向插槽传递数据 ​ ​ v-slot:title="scope" ​ scope.age ​ 插槽可以有默认内容,不传就用默认的

生命周期

​ 四个关键生命周期 ​ created ​ 组件创建时 ​ 获取数据 ​ mounted ​ 组件挂载到页面上的时候 ​ updated ​ 数据变化引起DOM更新完毕之后 ​ destroyed ​ 组件销毁

axios

​ 作用:封装ajax请求 ​ 可以设置全局地址 ​ 有时候你的网站和接口是两个地址 ​ http响应头可以指定允许跨域 ​ access-control ​ JSONP ​ 反向代理

配置拦截器

​ 请求 ​ 请求的时候统一要做的事情 ​ token ​ 响应 ​ 接口返回统一做的事情 ​ refs ​ 用在原生标签上 ​ ​ this.refs.username获取的是输入框的DOM​用在组件上​<userinforef="user"/>this.refs.username获取的是输入框的DOM ​ 用在组件上 ​ <user-info ref="user" /> ​ this.refs.user获取的是组件的实例 ​ 调用组件方法 ​ 可以读取组件属性 ​ nextTick ​ 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

指令

​ v-开头的属性 ​ v-model ​ v-bind ​ v-on ​ 自定义指令 ​ Vue.directive("指令名", {}) ​ inserted ​ 文档地址:cn.vuejs.org/v2/guide/cu…

路由

​ 什么是路由 ​ 地址和内容的一个对应关系 ​ vue-router3 ​ vue 2 ​ vue-router4 ​ vue 3 ​ 如何用 ​ 配置路由 ​ Vue.use(VueRouter) ​ 配置路由:数组 ​ path ​ 路径 ​ component ​ 要渲染的组件 ​ redirect ​ 重定向 ​ new VueRouter( { routes } ) ​ 实例化 ​ new Vue( { router } ) ​ 注入我们的Vue app里 ​ router-view放置路由挂载点

声明式导航

​ 什么是声明式导航 ​ router-link ​ 本质就是一个a标签 ​ </router-link ​ <router-link :to="{ path: "", query: {} }" ​ path和params不能一起用,否则params会被忽略 ​ name可以和params一起用 ​ query没有限制

编程式导航

​ 什么是编程式导航 ​ 用代码跳转 ​ 怎么用 ​ router.pushname,path,params,queryrouter.push ​ { name, path, params, query } ​ router.go ​ router.replacerouter.replace ​ router.back

参数传递

​ 两种方式 ​ 内嵌方式:/articleDetail/:id ​ route.params.idquery方式:/list?keyword=123route.params.id ​ query方式:/list?keyword=123 ​ route.query.keyword ​ 特殊字符编码 ​ encodeURIComponent ​ decodeURIComponent

模式

​ hash ​ 路由信息在井号后面 ​ history ​ 没有井号 ​ 需要web服务器配置

嵌套

​ 页面部分内容需要跟url建立对应联系,可以使用路由嵌套 ​ 组件内放置router-view,是嵌套组件的挂载点 ​ 激活的导航有一个专属类名 ​ router-link-exact-active ​ 作用是给激活的路由内容加样式

守卫

​ router.beforeEach(function() {}) ​ 作用 ​ 当你需要在页面跳转前做一些事情,比如阻止跳转,就可以用它 ​ 比如,权限验证 ​ 比如要收集页面访问情况,也可以用导航守卫