生命周期钩子

生命周期钩子

  • 在这里插入图片描述

  • beforeCreate

    • 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
    • 应用场景:可以用来初始化变量,这个变量不具有响应式,可以读取this,挂载静态变量
  • created

    • 在实例创建完成后被立即调用
    • 在这一步,实例已完成以下的配置:数据观测 (data observer),property 和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el property 目前尚不可用。
    • 应用场景:可以做响应式数据的修改,同步修改,读取this,读取data里面的数据,做数据的初始化
  • beforeMount

    • 在挂载开始之前被调用:相关的 render 函数首次被调用。
    • 该钩子在服务器端渲染期间不被调用。
    • 应用场景:最后一次响应数据的修改,会把上次的给覆盖掉,再做一次数据初始化
  • mounted

    • 实例被挂载后调用
    • DOM已经渲染在页面上了,可以操作DOM。以及AJAX请求
    • 相当于生存期,可以修改生存期的状态,就是修改data里的数据,可以激活beforeupdate和updated。
    • 该钩子在服务器端渲染期间不被调用。
  • beforeUpdate

    • 数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器
    • 该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。
  • updated

    • 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子

    • 当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作

    • updated 不会保证所有的子组件也都一起被重绘,希望等到整个视图都重绘完毕,可以在 updated 里使用

    • 该钩子在服务器端渲染期间不被调用

  • actived

    • 被 keep-alive 缓存的组件激活时调用。
    • 该钩子在服务器端渲染期间不被调用
  • deactivated

    • 被 keep-alive 缓存的组件停用时调用。
    • 该钩子在服务器端渲染期间不被调用
  • beforeDestory

    • 实例销毁之前调用。在这一步,实例仍然完全可用
    • 该钩子在服务器端渲染期间不被调用
  • destoryed

    • 实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。
    • 该钩子在服务器端渲染期间不被调用

note

  • SPA: Single Page Aplication 单页面应用
  • 一个Vue实例可以管理一棵DOM树(不常用),通常用组件管理DOM片段
  • 响应式现象 reactive
  • compile 编译 injection 注入
  • 钩子就是函数 hooks
  • 不要在选项 property 或回调上使用箭头函数,比如 created: () => console.log(this.a)vm.$watch('a', newValue => this.myMethod())。因为箭头函数并没有 thisthis 会作为变量一直向上级词法作用域查找,直至找到为止,经常导致 Uncaught TypeError: Cannot read property of undefinedUncaught TypeError: this.myMethod is not a function 之类的错误。
  • beforeCreate created 创建 初始化的钩子
  • beforeMount mounted 挂载 创建时的钩子
  • beforeupdate updated 更新 生存期的钩子
  • beforeDestory destoryed 销毁 销毁器的钩子
  • 生命周期钩子在满足条件的情况下自动执行
  • handler 句柄 回调
  • component属于vue的内置组件,不需要定义,天生就有,有个重要组件is,在is后可以冠以组件名字,会动态的装载组件,在装载后面的组件的时候前面的组件会被卸载,会激活beforeDestory和destoryed。也可以手动的调用this.$destory方法
  • fetch() 相当于promise
  • ajax请求写在created会有延迟,因为还没有渲染完 ,放在mounted最好

表单输入绑定

  • serialze() jQuery中收集所有表单信息方法

  • 接口组成因素 :

    • url;
    • request (首部字段,报文,请求报文,响应报文);
    • response;
    • methods:请求方法(get,post,put,patch,hearder,delete,);
    • 数据类型: 规定数据格式
  • post是insert逻辑(添加,修改) put 把原来的覆盖,patch打补丁

  • input 输入框 textarea多行输入框 select选择框 用来采集数据,收集用户信息

  • 数据双向绑定:

  • v-model =“textValue”

  • MVVM Model -View -ViewModel VM相当于控制中心

  • MVP Presenter

  • 单个复选框 true false

  • 多个复选框 数组

  • 单选按钮 radio 只有一个状态 提取多个单选按钮的某个值, 给单选按钮加一个value,通过v-model定义一个固定的值,当我们选中了某个input时,value就赋值给input

  • 多选 checkbox

  • 选择框 select 要把v-model放在select上 不是 option ,如果在option没有写value,它就会默认提取option的text,text可以使用multiple这个bool属性进行多行截取

修饰符

  • number ~~
  • lazy onchange
  • trim 去空格

组件库

  • vant

  • 在组件里定义data,必须使用闭包,返回一个data

  • 动态组件 dynamic component

  • 全局组件

  • 输入两个参数(组件名字,组件本身定义)

  • data必须是一个函数,对象会放在环境里运行,

  • 闭包:可以访问另一个作用域下的变量,本身是一个函数,(执行上下文,变量对象this,作用域量)

  • 主要作用是组件复用,是拆分的意义

  • 组件间通信:父子组件

    • 父传子

      • 在父组件上给引用组件元素上加一个属性,在子组件上通过props使用属性
      • slot 在父组件内部包一个子元素,在slot内置元素中读取
    • 子传父

      • 在父组件绑定一个事件,在子组件通过$emit触发这个事件,一般有两个参数(定义的事件名字,传递的信息)

父组件上给引用组件元素上加一个属性,在子组件上通过props使用属性
- slot 在父组件内部包一个子元素,在slot内置元素中读取

  • 子传父

    • 在父组件绑定一个事件,在子组件通过$emit触发这个事件,一般有两个参数(定义的事件名字,传递的信息)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值