Vue第三天(生命周期,钩子函数,axios请求)

时间:2025-03-09 19:57:00

目录

一、vue的生命周期

1、什么是生命周期

2、vue生命周期钩子函数

3、vue生命周期

():

() :

():

():

():

():

():

():

二、vue-resource接口请求

1、get请求:

2、post请求: 

三、 axios的使用

四、vue中的动画

1、使用过渡类名使用 transition 将需要过渡的元素包裹起来 

2、使用第三方css动画库

3、使用动画钩子函数

四、v-for的列表过渡

五、列表的排序过渡


一、vue的生命周期


1、什么是生命周期

从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期!

2、vue生命周期钩子函数

将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数(生命周期函数=生命周期事件=生命周期钩子)

3、vue生命周期

():

一般用于页面重定向

() :

一般用于接口请求 ,数据初始化

():

页面数据未更新,在内存中已经解析好模版,虚拟dom

():

页面更新完成,需要依赖dom的操作,在此完成

():

触发0次或多次,数据更新前

():

数据更新后

():

组件销毁前,清除定时器还有页面监听

():

组件销毁后

二、vue-resource接口请求


先引用Vue的脚本文件,再引用vue-resource的脚本文件

<script src="./vue-2.4."></script>
<script src="./vue-resource-1.3."></script>


1、get请求:

this.$("url?data").then(
                (res)=>{
                     = 
                }
            )


2、post请求: 

// post 方法接收三个参数:
// 参数1: 要请求的URL地址
// 参数2: 要发送的数据对象
// 参数3: 指定post提交的编码类型为 application/x-www-form-urlencoded

this.$("url",data,{ emulateJSON: true }).then((res)=>{
                 = 
            })
 post josn:

this.$("url",data).then((res)=>{
                // (res);
            })


三、 axios的使用


Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 中。

get请求:

mounted () {
    axios
      .get('/try/ajax/json_demo.json')
      .then(response => ( = response))
      .catch(function (error) { // 请求失败处理
        (error);
      });
  }


post请求:

mounted () {
    axios
      .post('/try/ajax/demo_axios_post.php')
      .then(response => ( = response))
      .catch(function (error) { // 请求失败处理
        (error);
      });
  }


post请求有内置对象,内置对象的append方法可以把参数传到变量中。         

   let url = new URLSearchParams()或者 let url = new FormData()

            ('type','free')

四、vue中的动画


1、使用过渡类名
使用 transition 将需要过渡的元素包裹起来 

HTML结构:

  <transition name="fade">
    <div v-show="isshow">动画哦</div>
  </transition>


VM 实例:

// 创建 Vue 实例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {
  isshow: false
},
methods: {
  myAnimate() {
     = !;
  }
}


定义两组类样式:

/* 定义进入和离开时候的过渡状态 */
  .fade-enter-active,
  .fade-leave-active {
    transition: all 0.2s ease;
    position: absolute;
  }
 
  /* 定义进入过渡的开始状态 和 离开过渡的结束状态 */
  .fade-enter,
  .fade-leave-to {
    opacity: 0;
    transform: translateX(100px);
  }


2、使用第三方css动画库


导入动画类库:

<link rel="stylesheet" type="text/css" href="./lib/">


定义 transition 及属性

<transition
        enter-active-class="animate__bounceInDown"
        leave-active-class="animate__rotateOutDownLeft"
 
        >
            <div v-if="flag" class="animate__animated"> 哈哈</div>
        </transition>


3、使用动画钩子函数


动画进入之前的回调

beforeEnter(el) { 
      (el);
       = 'translateX(500px)';
},


动画进入完成时候的回调

enter(el, done) {
      (done);
      ;
       = 'translateX(0px)';
      done();
},


动画进入完成之后的回调

afterEnter(el) { 
     ("3333");
      = !;
}


定义动画过渡时长

.show{
transition: all 0.4s ease;
}


四、v-for的列表过渡


 DOM结构需要使用 transition-group 组件把v-for循环的列表包裹起来

五、列表的排序过渡


<transition-group> 组件还有一个特殊之处。不仅可以进入和离开动画,还可以改变定位。

v-move 和 v-leave-active 结合使用,能够让列表的过渡更加平缓柔和

.v-move{
transition: all 0.8s ease;
}
.v-leave-active{
position: absolute;
}