龙空技术网

1天让你精通vue(6 生命周期与组件)

不开心就撸代码 241

前言:

眼前你们对“vue生命周期拿到this”都比较注重,姐妹们都需要剖析一些“vue生命周期拿到this”的相关内容。那么小编在网络上汇集了一些关于“vue生命周期拿到this””的相关内容,希望大家能喜欢,我们快快来学习一下吧!

一、生命周期(一)钩子函数

(1) 初始化显示

① beforeCreate()

② created()

③ beforeMount()

④ mounted()

(2) 更新状态: this.xxx = value

① beforeUpdate()

② updated()

(3) 销毁 vue 实例: vm.$destory()

① beforeDestory()

② destoryed()

(二)常用的生命周期钩子:

(1) mounted: 发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。

(2) .beforeDestroy: 清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】。

(3) 关于销毁Vue实例

① 销毁后借助Vue开发者工具看不到任何信息。

② 销毁后自定义事件会失效,但原生DOM事件依然有效。

③ 一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了。

二、组件(一)非单文件组件

(1) Vue中使用组件的三大步骤:

一、定义组件(创建组件)

二、注册组件

三、使用组件(写组件标签)

(2) 如何定义一个组件?

使用Vue.extend(options)创建,其中options和new Vue(options)时传入的那个options几乎一样,但也有点区别;

区别如下:

1.el不要写,为什么? ——— 最终所有的组件都要经过一个vm的管理,由vm中的el决定服务哪个容器。

2.data必须写成函数,为什么? ———— 避免组件被复用时,数据存在引用关系。

备注:使用template可以配置组件结构。

(3) 如何注册组件?

局部注册:靠new Vue的时候传入components选项

全局注册:靠Vue.component('组件名',组件)

(4) 编写组件标签:

<school></school>

<div id='app'>  <!-- 使用组件 -->  <student/></div><script>//创建组件const student = Vue.extend({  data() {    return {      name:'lisi',      age:20    }  },  template:`    <div>      <div>名称:{{name}}</div>      <div>年龄:{{age}}</div>      <button @click='upName'>修改名称</button>    </div>  `,  methods: {    upName(){    	this.name = 'wangwu'    }  },  })  //全局注册组件  Vue.component('student',student)  new Vue({    el:'#app',    //局部注册组件    /* components:{      student      } */  })</script>

(5) 几个注意点:

① 关于组件名:

1) 一个单词组成:

a. 第一种写法(首字母小写):school

b. 第二种写法(首字母大写):School

2) 多个单词组成:

a. 第一种写法(kebab-case命名):my-school

b. 第二种写法(CamelCase命名):MySchool (需要Vue脚手架支持)

3) 备注:

a. 组件名尽可能回避HTML中已有的元素名称,例如:h2、H2都不行。

b. 可以使用name配置项指定组件在开发者工具中呈现的名字。

② 关于组件标签:

1) 第一种写法:<school></school>

2) 第二种写法:<school/>

3) 备注:不用使用脚手架时,<school/>会导致后续组件不能渲染。

③ 一个简写方式:

const school = Vue.extend(options) 可简写为:const school = options

(二)脚手架使用

(1) 第一步(仅第一次执行):全局安装@vue/cli。

npm install -g @vue/cli

(2) 第二步:切换到你要创建项目的目录,然后使用命令创建项目

vue create xxxx

(3) 第三步:启动项目

npm run serve

(4) 脚手架文件结构

├── node_modules

├── public

│ ├── favicon.ico: 页签图标

│ └── index.html: 主页面

├── src

│ ├── assets: 存放静态资源

│ │ └── logo.png

│ │── component: 存放组件

│ │ └── HelloWorld.vue

│ │── App.vue: 汇总所有组件

│ │── main.js: 入口文件

├── .gitignore: git版本管制忽略的配置

├── babel.config.js: babel的配置文件

├── package.json: 应用包配置文件

├── README.md: 应用描述文件

├── package-lock.json:包版本控制文件

(三)单文件组件

(1) 一个.vue 文件的组成(3 个部分)

① 模板页面

<template>

页面模板

</template>

② JS 模块对象

<script>

export default {

data() {return {}},

methods: {},

computed: {},

components: {}

}

</script>

③ 样式

<style>

样式定义

</style

(2) 基本使用

① 引入组件

② 映射成标签

③ 使用组件标签

<template>  <div id="app">    <!-- 使用组件 -->    <Student></Student>    <Student/>  </div></template><script>  //引入组件  import Student from '@/components/Student'  export default {    name: 'App',    //注册组件    components: {    	Student    }  }</script><style></style>

回复vue,可以获得全套笔记

1天让你精通vue(5 内置指令与自定义指令)

1天让你精通vue(4)

标签: #vue生命周期拿到this