Vue生命周期和vue请求+动画

1、什么是生命周期

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

2、vue生命周期

例题1:<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
   <script src="./js/vue-2.4.0.js"></script>
</head>
<body>
    <div id='app'>
        <div>{{msg}}</div>
        <input type="text" v-model="msg">
    </div>

    <script>
    const vm = new Vue({
        el: '#app',
        data: {
            msg:'hello'
        },
        methods: {

        },
        //生命周期
        beforeCreate(){
            // 一般用于页面重定向
            console.log('beforeCreate');
            console.log(this.msg);
        },
        created(){
            // 一般用于接口请求,数据初始化
            console.log('created');
            console.log(this.msg);
        },
        // 页面数据未更新,在内存中已经解析好模板,虚拟dom
        beforeMount(){
            console.log('beforeMount');
            // debugger
        },
        // 页面更新完成,需要依赖dom的操作,在此完成
        mounted(){
            console.log('mounted');
        },
        // 触发0次或多次,数据更新前
        beforeUpdate(){
            console.log("beforeUpdate");
            console.log(this.msg);
            // debugger
        },
        // 数据更新后
        updated(){
            console.log("updated");
            console.log(this.msg);
        },
        // 组件销毁前,清除定时器还有页面监听
        beforeDestroy(){
            console.log('beforeDestroy');
        },
        // 组件销毁后
        destroyed(){
            console.log('destroyed');
        },
    })
    
    </script>
</body>
</html>

3. vue-resource的使用

安装方法

使用 cdn:

    <script    src="https://cdn.bootcdn.net/ajax/libs/vue-resource/1.5.3/vue-resource.min.js"></script>

  • 直接在页面中,通过script标签,引入vue-resource的脚本文件;

  • 注意:引用的先后顺序是 - 先引用Vue的脚本文件,再引用vue-resource的脚本文件

GET请求

getInfo() { // get 方式获取数据
this.$http.get('http://yapi.shangyuninfo.com/mock/36/web02/category').then(res => {
  console.log(res.body);
})

}

POST请求

postInfo() {
var url = 'http://yapi.shangyuninfo.com/mock/36/web02/list/goods/category';
// post 方法接收三个参数:
// 参数1: 要请求的URL地址
// 参数2: 要发送的数据对象
// 参数3: 指定post提交的编码类型为 application/x-www-form-urlencoded
this.$http.post(url, {categoryId: 'zs' }, { emulateJSON: true }).then(res => {
  console.log(res.body);
});

}

4

get请求:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例</title>
<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
<script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
</head>
<body>
<div id="app">
  {{ info }}
</div>
<script type = "text/javascript">
new Vue({
  el: '#app',
  data () {
    return {
      info: null
    }
  },
  mounted () {
    axios
      .get('https://www.runoob.com/try/ajax/json_demo.json')
      .then(response => (this.info = response))
      .catch(function (error) { // 请求失败处理
        console.log(error);
      });
  }
})
</script>
</body>
</html>

. axios的使用

Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。

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

安装方法

使用 cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

<script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>

使用 npm:

npm install axios

POST请求
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例</title>
<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
<script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
</head>
<body>
<div id="app">
  {{ info }}
</div>
<script type = "text/javascript">
new Vue({
  el: '#app',
  data () {
    return {
      info: null
    }
  },
  mounted () {
    axios
      .post('https://www.runoob.com/try/ajax/demo_axios_post.php')
      .then(response => (this.info = response))
      .catch(function (error) { // 请求失败处理
        console.log(error);
      });
  }
})
</script>
</body>
</html>

5.1 使用过渡类名

HTML结构:

<div id="app">

<input type="button" value="动起来" @click="myAnimate">
  <!-- 使用 transition 将需要过渡的元素包裹起来 -->
  <transition name="fade">
    <div v-show="isshow">动画哦</div>
  </transition>
</div>

VM 实例:

// 创建 Vue 实例,得到 ViewModel

var vm = new Vue({
el: '#app',
data: {
  isshow: false
},
methods: {
  myAnimate() {
    this.isshow = !this.isshow;
  }
}

});

定义两组类样式:

/* 定义进入和离开时候的过渡状态 */

  .fade-enter-active,
  .fade-leave-active {
    transition: all 0.2s ease;
    position: absolute;
  }

  /* 定义进入过渡的开始状态 和 离开过渡的结束状态 */
  .fade-enter,
  .fade-leave-to {
    opacity: 0;
    transform: translateX(100px);
  }

5.2列表的排序过渡

<transition-group> 组件还有一个特殊之处。不仅可以进入和离开动画,还可以改变定位。要使用这个新功能只需了解新增的 v-move 特性,它会在元素的改变定位的过程中应用。

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

.v-move{

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值