首页 > 其他分享 >vue生命周期和vue组件

vue生命周期和vue组件

时间:2023-02-17 09:00:17浏览次数:36  
标签:el 生命周期 console log vue 当前 组件 data name

目录

vue生命周期

官方的生命周期图

组件生命周期图示

简易图

img

从vue实例创建开始直到实例被销毁,总共经历了8个生命周期钩子【只要写了就会执行】函数

钩子:反序列化验证---》钩子函数
学名[专门名字]---》面向切面编程(AOP)
OOP:面向对象编程

# 重点
1 用的最多的,created  发送ajax请求----》有的人放在mounted中加载
2 beforeDestroy
    组件一创建,created中启动一个定时器
     组件被销毁,beforeDestroy销毁定时器

八个生命周期钩子函数

函数 释义
beforeCreate 创建Vue实例之前调用
created 创建Vue实例成功后调用(可以在此处发送异步请求后端数据)
beforeMount 渲染DOM之前调用
mounted 渲染DOM之后调用
beforeUpdate 重新渲染之前调用(数据更新等操作时,控制DOM重新渲染)
updated 重新渲染完成之后调用
beforeDestroy 销毁之前调用
destroyed 销毁之后调用
<script>
    var vm = new Vue({
        el: '.app',
        data: {
            name: 'sss'
        },
        methods: {},
        beforeCreate() {
            console.group('当前状态:beforeCreate')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },
        created() {
            console.group('当前状态:created')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },
        beforeMount() {
            console.group('当前状态:beforeMount')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },
        mounted() {
            console.group('当前状态:mounted')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },
        beforeUpdate() {
            console.group('当前状态:beforeUpdate')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },
        updated() {
            console.group('当前状态:updated')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },

        // 如果写在Vue实例上,后面这俩是看不到的----》使用组件演示8个生命周期
        beforeDestroy() {
            console.group('当前状态:beforeDestroy')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },
        destroyed() {
            console.group('当前状态:destroyed')
            console.log('当前el状态:', this.$el)
            console.log('当前data状态:', this.$data)
            console.log('当前name状态:', this.name)
        },

    })
</script>

练习

# 实现实时聊天效果(在线聊天室)
	-轮询:定时器+ajax   http:http版本区别
    -长轮询:定时器+ajax  http
    -websocket协议:服务端主动推送消息
    https://zhuanlan.zhihu.com/p/371500343

vue组件

组件开发的好处------重用代码

组件分类

  1. 全局组件

    在任意组件中都可以使用

    Vue.component('child', {
        template: `
          <div>
          <button>后退</button>
          <span style="font-size: 40px">首页--{{ name }}</span>
          <button @click="handleFor">前进</button>
          <lqz1></lqz1>
          </div>`,// 里面写html内容,必须包在一个标签中
        data() {              // data必须是方法,返回对象
            return {
                name: '彭于晏',
                t: null
            }
        },
        methods: {
            handleFor() {
                this.name = 'lqz'
            }
        },
        components: {
            'lqz1': {
                template: `
                  <div>
                  <h1>局部组件---{{ age }}</h1>
                  </div>`,
                data() {
                    return {
                        age: 19
                    }
                }
            },
        }
    })
    
  2. 局部组件

    只能在当前组件中使用

    var foo={
                    template: `
                      <div>
                      <h1>局部组件---{{ age }}</h1>
                      </div>`,
                    data() {
                        return {
                            age: 19
                        }
                    }
                }
    
        var vm = new Vue({
       		...
            components: {
                foo
            }
        })
    

补充知识

  1. 之前前后端交互使用xml格式

  2. 后来json格式,格式出现,前后端交互,主流都是json格式

    可能觉得返回给前端页面的数据是可以看到的---响应内容

    有些会采用前后端加密解密的方式去保证数据的安全,但是麻烦又慢,一般都不会选择的

  3. 目前有些比json更安全/高效/节约空间的编码格式,后期前后端交互使用其他的编码格式

标签:el,生命周期,console,log,vue,当前,组件,data,name
From: https://www.cnblogs.com/zhanglanhua/p/17128907.html

相关文章

  • 在 vuex 中建立一个 permission.js 文件用于合并静态和动态的路由规则
    结果会获取完整的用户的路由规则//新建一个vuex模块来专门处理权限相关操作import{constantRoutes,asyncRoutes}from"@/router";exportdefault{namespace......
  • Vue - 4 Vue中与后端交互
    目录Vue-4Vue中与后端交互1.购物车案例2.v-model的修饰符3.什么是跨域问题跨域问题同源策略跨域问题解决思路4.Vue中与后端交互1.使用JQuery中的ajax2.fetch3.axios发送......
  • Vue - 5 生命周期与组件
    目录Vue-5生命周期与组件1.Vue的生命周期钩子函数2.Vue组件Vue-5生命周期与组件1.Vue的生命周期钩子函数钩子函数描述beforeCreate创建Vue实例之前调......
  • VUE生命周期函数/axios与后端交互案例
    axios发送ajax请求与后端交互以后都用它,在vue上,第三方的模块Axios是一个基于promise的HTTP库,还是基于XMLHttpRequest封装的#跨越问题 -浏览器的原因,只要向不是......
  • vue中,各个模块的解释
       name:data:methods:.then:res:this:mounted: ......
  • vue-4
    购物车案例<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="js/vue.js"></script><linkrel="sty......
  • vue购物车案例,v-model进阶,与后端交互,vue生命周期,vue组件
    内容回顾v-for可以循环的类型:数字,字符串,数组,对象js的循环方式:基于索引的方式(i=0;i<10;i++)in循环出来的是索引of基于迭代的,循环出来就是值$.each(数组,item=>{})......
  • vue-购物车案例、前后端交互、vue生命周期、组件
    1.购物车案例1.1基本版购物车js的变量只要发生变化,html页面中使用该变量的地方,就会重新渲染<body><divid="app"><divclass="container-fluid">......
  • vue2 - 目录
    vue2-模板语法插值语法,属性单向绑定,属性双向绑定,v-clock,v-text,v-html,v-once,v-prevue2-事件,事件的绑定,事件属性,键盘事件vue2-计算属性,计算属性简写,监听属性,深度监......
  • V-model进阶 Vue与后端交互,Vue生命周期,Vue组件
    目录v-model进阶操作与后端交互jq的ajax与后端交互drf接口vuehtml页面fetch与后端交互代码axios发送ajax请求代码小电影项目接口页面vue生命周期重点:创建组件全局组件局部......