Vue.js学习笔记(拾贰)

72 阅读2分钟

【6月日新计划更文活动】第2天

nextTick

1、语法:this.$nextTick(回调函数)        在DOM更新完毕之后执行一个回调

2、作用:在下一次 DOM 更新结束后执行其指定的回调

3、什么时间用:当改变数据后,要基于更新后的新DOM 进行某些操作时,要在 nextTick 所指定的回调函数中执行

Vue 封装过渡与动画

1、作用:在插入、更新或移除 DOM 元素时,在合适的时候给元素添加样式类名

2、图示:

image.png 3、写法: 1)、准备好样式:元素进入样式时:①、v-enter:进入的起点 ②、v-enter-active:进入过程中 ③、v-enter-to:进入的终点 元素离开样式时:①、v-leave:离开的起点 ②、v-leave-active:离开过程中 ③、v-leave-to:离开的终点 2)、使用 包裹要过度的元素,并配置 name 属性:

<transition name="hello" appear="">
  <h1 v-show="isShow">你好啊</h1>
</transition>

3、备注:若有多个元素需要过度,则需要使用:, 且每个元素都要指定 key

vue 脚手架配置代理

方法一: 在 vue.config.js 中添加如下配置

module.exports = {
  devServer: {
    proxy: 'http://localhost:4000'
  }
}

优点:配置简单,请求资源时直接发给前端 (8080) 即可。

缺点:不能配置多个代理,不能灵活的控制请求是否代理。

工作方式:若按照上述配置代理,当请求了前端不存在的资源时,那么该请求会转发给服务器 (优先匹配前端资源)

方法二: 编写 vue.config.js 配置具体代理规则

module.exports = {
  devServer: {
    proxy: {
      '/api': { //匹配所有以 '/api' 开头的请求路径
        target: '<url>', //代理目标的基础路径
        ws: true,
        changeOrigin: true,
        pathRewrite: {'^/api': ''},
      },
      '/foo': { //匹配所有以 '/foo' 开头的请求路径
        target: '<other_url>' //代理目标的基础路径
      }
    }
  }
}
/*
changeOrigin 设置为 true 时,服务器收到的请求头中的 host为:http://localhost:8000
changeOrigin 设置为 false 时,服务器收到的请求头中的 host为:http://localhost:8080
changeOrigin  的默认值为 true
*/

优点:可以配置多个代理,且可以灵活的控制请求是否代理

缺点:配置稍繁琐,请求资源时必须加前缀

Vue 中的 Ajax

github接口 API 地址:api.github.com/search/user…

开放 API 地址:api.uixsj.cn/hitokoto/ge…

一言 语句接口 API: hitokoto.cn/

天气 API :xsdggw.cn/t/api/wethe…

开源社区:api.apiopen.top/

段子API:api.apiopen.top/getJoke

Vue项目中常用的Ajax 库

axios: 通用的Ajax 请求库,官方推荐,使用广泛

// 错误处理
const errorHandle = (status, info) => {
  switch (status) {
    case 400:
      console.log("语义有误");
      break;
    case 401:
      console.log("服务器认证失败");
      break;
    case 403:
      console.log("服务器拒绝访问");
      break;
    case 404:
      console.log("地址错误");
      break;
    case 500:
      console.log("服务器遇到意外");
      break;
    case 502:
      console.log("服务器无响应");
      break;
    default:
      console.log(info);
      break;
  }
}

可以进行全局地址配置,配置响应时间等额外封装。

vue-resource: vue插件库,Vue1.x 使用广泛。官方已不维护

image.png