vue学习3:生命周期、组件化编程(总结精简版)

生命周期

生命周期概述

  1. 又名:生命周期回调函数、生命周期函数、生命周期钩子;
  2. 是什么:vue在关键时刻帮我们调用的一些特殊名称的函数;
  3. 生命周期函数的名字不可修改,但函数的具体内容是根据程序员的需求编写的;
  4. 生命周期函数中this指向是vm或组件实例对象;

常见的生命周期钩子:

1. mounted:发送ajax请求,启动定时器,绑定自定义事件,订阅消息等等(初始化操作);
2. beforeDestroy:清除定时器,解绑自定义事件,取消订阅消息(收尾工作)

关于销毁Vue实例

  1. 销毁后借助vue开发工具看不到任何消息;
  2. 销毁后自定义的事件会失效,但是原生DOM事件依然有效;
  3. 一般不会在beforDestroy操作数据,因为即使操作数据,也不会再触发更新流程了;

Vue组件化编程

非单文件组件

一个文件中包含n个组件

基本使用

VUE中使用组件的三大步骤
一、定义组件(创建组件)
二、注册组件
三、使用组件(写组件标签)
一、如何定义一个组件?
使用Vue.extend(options)创建,其中options和new Vue(options)时传入的那个options几乎一样,但是也有一些区别:
区别如下:
- el不要写,为什么?–最终所有的组件都要经过一个vm的管理,由vm中的el决定服务哪个容器;
- data必须写成函数,为什么?–避免组件被复用时,数据存在引用关系。
备注:使用template可以配置组件结构
二、如何注册组件?
1. 局部注册:靠new Vue的时候传入components选项;
2. 全局注册: 靠Vue.component(‘组件名’,组件)
三、编写组件标签
<school></school>

几个注意点

  1. 关于组件名:
    一个单词组成:

    • 第一种写法(首字母小写):school
    • 第二种写法(首字母发泄):School
      多个单词组成:
    • 第一种写法(kebab-case命名):my-school
    • 第二种写法(CamelCase命名):MySchool(需要脚手架)
      备注:
      (1)组件名尽可能回避HTML已经存在的元素名称,例如:h1,h2,H2都不行;
      (2)可以使用name配置项指定组件在开发者工具中呈现的名字;
  2. 关于组件标签
    第一种写法:

    <school></school>
    

    第二种写法:

    <school/>
    

    备注:不用使用脚手架时,第二种方法会导致后续组件无法渲染;

  3. 一个简写方式
    const school=Vue.extend(options)
    可以简写成:
    const school=options

组件的嵌套

关于VueComponent

  1. school组件本质上是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的;
  2. 我们只需要写 <school\><school><\school>,vue解析的时候会帮我们创建school组件的实例对象,即VUE帮我们执行的:new VueComponent(options);
  3. 特别注意:每次调用Vue.extend,返回的都是一个全新的VueComponent!!!
  4. 关于this的指向:
    • 组件配置中:
      data函数、methods中的函数、watch中的函数、computed中的函数 他们的this指向均为【VueComponent实例对象】
    • .new Vue(options)配置中:
      data函数、methods中的函数、watch中的函数、computed中的函数 他们的this指向均为【Vue实例对象】
      内置关系
      VueComponent.portotype.__proto__===Vue.prototype

单文件组件

一个文件中包含一个组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李喵喵爱豆豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值