vue生命周期在工作中的用法
1、首先来官方服生命=周期的解释:
- beforeCreate():实例在内存中被创建出来,还没有初始化好data和methods属性。
- create():实例已经在内存中创建,已经初始化好data和method,此时还没有开始编译模板。
- beforeMount():已经完成了模板的编译,还没有挂载到页面中。
- mounted():将编译好的模板挂载到页面指定的容器中显示。
- beforeUpdate():状态更新之前执行函数,此时data中的状态值是最新的,但是界面上显示的数据还是旧的,因为还没有开始重新渲染DOM节点。
- updated():此时data中的状态值和界面上显示的数据都已经完成了跟新,界面已经被重新渲染好了!
- beforeDestroy():实例被销毁之前。
- destroyed():实例销毁后调用,Vue实例指示的所有东西都会解绑,所有的事件监听器都会被移除,所有的子实例也都会被销毁。组件已经被完全销毁,此时组建中所有data、methods、以及过滤器,指令等,都已经不可用了。
2、工作中的用法:
beforecreate
: 可以在这函数中初始化加载动画。created
:做一些数据初始化,实现函数自执行。mounted
: 调用后台接口进行网络请求,拿回数据,配合路由钩子做一些事情。destoryed
:当前组件已被删除,清空相关内容。
在实际开发项目的过程中,mounted主要做网络请求和重新赋值。
数据对象data:初始化属性及能够其响应数据变化,data
必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。
注:vue组件中的data为什么是一个函数:
组件是可复用的vue
实例,一个组件被创建好之后,就可能被用在各个地方,而组件不管被复用了多少次,组件中的data
数据都应该是相互隔离,互不影响的,基于这一理念,组件每复用一次,data
数据就应该被复制一次,之后,当某一处复用的地方组件内data
数据被改变时,其他复用地方组件的data
数据不受影响;
组件中的data
写成一个函数,数据以函数返回值形式定义,这样每复用一次组件,就会返回一份新的data
,类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据。而单纯的写成对象形式,就使得所有组件实例共用了一份data
,就会造成一个变了全都会变的结果。
//使用方法
data: function () {
return {
message: 'Welcome Vue',
goodsImg: '',
itemGoodsId: '',
imageUrls: []
}
},
计算属性computed: 将返回function内return的值赋值在html的DOM上,computed内的function也只执行一次。仅当function内涉及到Vue实例绑定的data的值的改变,function才会从新执行,并修改DOM上的内容。
<template>
<div>
<div>{{reversedMessage}}</div>
<div @click="handlerCilck">点我</div>
</div>
</template> <script>
export default {
name: 'test',
data(){
return{
message: 'hello'
}
},
computed: {
reversedMessage: function () {
return this.message.split('').reverse().join('')
}
},
methods:{
handlerCilck(){
this.message = 'hello world'
this.reversedMessage()//重新修改DOM的值
}
}
}
</script>
自定义方法methods:methods:{所有页面的自定义函数}
<div @click="clickReverse">点击</div>
methods:{
clickReverse(){
this.message = 'hello world'
this.reversedMessage()//重新修改DOM的值
},
}
beforeRouteEnter(to, from, next):进入路由之前执行的函数,写在组件里可根据路由进行页面判断或传值。
beforeRouteLeave(to, from, next):离开路由之前执行的函数,可用于页面的反向传值,页面跳转。
// 点击后拿到数据返回给下单地址
beforeRouteLeave (to, from, next) {
if (to.name === 'home') {
to.query.temp = '这里是参数,选中后的地址'
}
console.log(to)
console.log(from)
next()//一定不要忘记写
},
具体方法和参数按照工作中的需求而自行应用。
vue生命周期在工作中的用法的更多相关文章
- vue生命周期图示中英文版Vue实例生命周期钩子
vue生命周期图示中英文版Vue实例生命周期钩子知乎上近日有人发起了一个 “react 是不是比 vue 牛皮,为什么?” 的问题,Vue.js 作者尤雨溪12月4日正面回应了该问题.以下是尤雨溪回复 ...
- 在vue生命周期中及时销毁全局作用的代码
一.纯客户端中 对于全局的代码,比如定时器等,在 beforeDestroy或 destroyed 生命周期时将其销毁.如果在跳转路由时候,组件销毁了,全局的定时器却没有销毁,这会使得页面产生卡顿. ...
- Vue学习之--------Vue生命周期beforeCreate、created、beforeMount、mounted、beforeDestroy 。。。(图解详细过程)(2022/7/17)
文章目录 1.Vue生命周期 1.1 概念 1.2 图解 2.钩子函数的用法说明 2.1 beforeCreate()和created()的详细讲述 2.1.1 方法说明 2.1.2 代码实例 2.1 ...
- Vue生命周期,面试常见问题
一.对于MVVM的理解? MVVM 是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View 代表UI 组件,它负责将数 ...
- vue生命周期以及vue的计算属性
一.Vue生命周期(vue实例从创建到销毁的过程,称为生命周期,共有八个阶段) 1.beforeCreate :在实例初始化之后,数据观测 (data observer) 和 event/watche ...
- Vue系列(二):发送Ajax、JSONP请求、Vue生命周期及实例属性和方法、自定义指令与过渡
上一篇:Vue系列(一):简介.起步.常用指令.事件和属性.模板.过滤器 一. 发送AJAX请求 1. 简介 vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 ...
- Vue生命周期学习总结
官方文档上关于Vue生命周期的图片大家一定很熟悉: 1.beforeCreate 实例.组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这 ...
- 【vue生命周期】- 详解
这篇文章通俗易懂,写的不错,本文转载至:https://www.cnblogs.com/happ0/p/8075562.html 详解Vue Lifecycle 先来看看vue官网对vue生命周期的介 ...
- vue生命周期的介绍
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- nohup 后台运行脚本,且可以实时查看日志
-u加在python上 python命令加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕. 这是因为python的缓存机制所决定的 如果是使用 nohup ...
- Python类和实例调用
self指向的是实例对象,作为第一个参数,使用时不需要传入此参数. class Student(object): #定义一个Student类, def __init__(self, name, sco ...
- Python13之元组(带上枷锁的列表)
一.元组定义 元组一旦建立,元组内的元素不允许修改和删除,这就是元组和列表最大的区别 当元组中仅有一个元素时,需要将元素后面加上逗号,或者不用括号也可以. tuple1 = (12,3234,5435 ...
- SQLLite日期时间函数
SQLLite包含了如下时间/日期函数:datetime().......................产生日期和时间date()...........................产生日期tim ...
- 利用Python进行数据分析 第6章 数据加载、存储与文件格式(2)
6.2 二进制数据格式 实现数据的高效二进制格式存储最简单的办法之一,是使用Python内置的pickle序列化. pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle ...
- 利用Python进行数据分析 第5章 pandas入门(2)
5.2 基本功能 (1)重新索引 - 方法reindex 方法reindex是pandas对象地一个重要方法,其作用是:创建一个新对象,它地数据符合新地索引. 如,对下面的Series数据按新索引进行 ...
- Dockerfile编写,以及设置一个自启动脚本
FROM:指定基础镜像,必须为第一个命令 MAINTAINER: 维护者信息 RUN:构建镜像时执行的命令 ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问 ...
- PAT-1021 Deepest Root (25 分) 并查集判断成环和联通+求树的深度
A graph which is connected and acyclic can be considered a tree. The height of the tree depends on t ...
- 使用Dockerfile构建镜像并push到私有仓库
环境:OS X 10.10.5 maven 3.3.9 Docker version 1.12.2 docker-machine version 0.8.2 程序示例为http://www.cnblo ...
- php 5.6.36 安装mcrypt
相关扩展安装步骤 libmcrypt downloadUrl:https://sourceforge.net/projects/mcrypt/files/MCrypt/ versionCode:2.5 ...