函数式组件

1.特点

  • 没有this(没有实例)
  • 没有响应式数据
  • 它只是一个接受一些 prop 的函数。
  • render

MVVM分为Model、View、ViewModel三者。

  • Model:代表数据模型,数据和业务逻辑都在Model层中定义;
  • View:代表UI视图,负责数据的展示;
  • ViewModel:就是与界面(view)对应的Model。因为,数据库结构往往是不能直接跟界面控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。

前段时间面试蚂蚁金服,面试官问我,比如UI中有一个li列表,它是怎么与我们的数据对应的,当时没明白他在问什么,现在想想应该是考察ViewModel。

Model和View并无直接关联,而是通过ViewModel来进行联系的,Model和ViewModel之间有着双向数据绑定的联系。因此当Model中的数据改变时会触发View层的刷新,View中由于用户交互操作而改变的数据也会在Model中同步。

简单的说,ViewModel就是View与Model的连接器,View与Model通过ViewModel实现双向绑定。

浏览器渲染的原理:

1.根据html文件构建DOM树和CSSOM树。构建DOM树期间,如果遇到JS,阻塞DOM树及CSSOM树的构建,优先加载JS文件,加载完毕,再继续构建DOM树及CSSOM树。

2.构建渲染树(Render Tree)。

3.页面的重绘(repaint)与重排(reflow,也有称回流)。页面渲染完成后,若JS操作了DOM节点,根据JS对DOM操作动作的大小,浏览器对页面进行重绘或是重排。

判断数组为数组:

var arr = [1,2,3,1];

console.log(arr instanceof   Array); // true
var arr = [1,2,3,1];

console.log(arr.constructor === Array); // true

get传递数组:

在请求拦截器中将参数序列化配置,

设置一下

axios.get("https://www.cnblogs.com/enter",{
params: {
     keys:this.tag
},
paramsSerializer: function(params) {
          const keys= params.keys.map(_=>`keys=${_}`).join('&');
          return `${keys}` ;
}
}).then((res)=>{
        //成功后的处理
});

undefined表示变量声明但未初始化时的值,

null值表示一个空对象指针。typeof==》object

cookie:

区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器
和服务器间来回传递。
cookie只在设置的cookie过期
时间之前一直有效,即使窗口或浏览器关闭
4k

一,localstory,sessionstory类似,

  • 两者的共同点在于:

    • 存储大小均为5M左右
    • 都有同源策略限制
    • 仅在客户端中保存,不参与和服务器的通信
  • 两者的不同点在于:
    • 生命周期 —— 数据可以存储多少时间

      • localStorage: 存储的数据是永久性的,除非用户人为删除否则会一直存在。
      • sessionStorage: 与存储数据的脚本所在的标签页的有效期是相同的。一旦窗口或者标签页被关闭,那么所有通过 sessionStorage 存储的数据也会被删除。
    • 作用域 —— 谁拥有数据的访问权
      • localStorage: 在同一个浏览器内,同源文档之间共享 localStorage 数据,可以互相读取、覆盖。
      • sessionStorage: 与 localStorage 一样需要同一浏览器同源文档这一条件。不仅如此,sessionStorage 的作用域还被限定在了窗口中,也就是说,只有同一浏览器、同一窗口的同源文档才能共享数据。

二,vuex----集中式数据管理中心

vuex 属于js,因此vuex使用的数据自然会放在内存。而浏览器在每次刷新页面之后都会清空一次内存,因此vuex存储的消息自然就会消失

主要功能:

actions和mountaion的区别:

actions:可异步

  1. 组件之间的数据通信

  2. 使用单向数据流的方式进行数据的中心化管理

  3. 视图通过点击事件,触发mutations中方法,可以更改state中的数据,一旦state数据发生更改,getters把数据反映到视图
    • 数据:state --> data
    • 获取数据:getters --> computed
    • 更改数据:mutations --> methods

localstory,sessionstory,vuex,cook的更多相关文章

  1. 用混入的方法引入vuex,并且解决vuex刷新页面值丢失的问题

    前段时间,做了个官网项目,客户要求将首页的域名后面的参数去除干净,然后就把#去掉了,一转脸,客户让去掉子页面地址栏上的参数,这很棘手,因为子页面的内容是根据子页面地址栏上的参数而定的,如果要去掉这些参 ...

  2. Vuex,状态管理模式

    对于 Vue 本人目前接触不深,只得浅层分析,Vue 是单向数据流, state,驱动应用的数据源: view,以声明方式将 state 映射到视图: actions,响应在 view 上的用户输入导 ...

  3. Vuex,从入门到...

    Vuex 是什么? 官方是这么说的:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 不懂? ...

  4. 举个例子去理解vuex(状态管理),通俗理解vuex原理,通过vue例子类比

    通俗理解vuex原理---通过vue例子类比   本文主要通过简单的理解来解释下vuex的基本流程,而这也是vuex难点之一. 首先我们先了解下vuex的作用vuex其实是集中的数据管理仓库,相当于数 ...

  5. 手摸手教你在vue-cli里面使用vuex,以及vuex简介

    写在前面: 这篇文章是在vue-cli里面使用vuex的一个极简demo,附带一些vuex的简单介绍.有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家. 本文首发于我的个人 ...

  6. 抛弃vuex ,拥抱ts,手撸泛型Store<T>!

    前段时间学习了下vue3 和ts ,就尝试下做了个项目,结果发现vuex和ts几乎无法结合,越写越别扭,开始怀疑用ts就是自己给自己挖坑,然后加了几个vue相关的群,去抱怨了几句,得到大佬指点:你可以 ...

  7. 告别Vuex,发挥compositionAPI的优势,打造Vue3专用的轻量级状态

    Vuex 的遗憾 Vuex 是基于 Vue2 的 option API 设计的,因为 optionAPI 的一些先天问题,所以导致 Vuex 不得不用各种方式来补救,于是就出现了 getter.mut ...

  8. 5分钟让你掌握Vuex,深入浅出

    5分钟让你掌握Vuex,深入浅出 一.什么是Vuex? 概念:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预 ...

  9. 一文解析Pinia和Vuex,带你全面理解这两个Vue状态管理模式

    Pinia和Vuex一样都是是vue的全局状态管理器.其实Pinia就是Vuex5,只不过为了尊重原作者的贡献就沿用了这个看起来很甜的名字Pinia. 本文将通过Vue3的形式对两者的不同实现方式进行 ...

  10. 5分钟上手使用vuex,vuex状态管理,vuex遇到的坑

    很多刚学习vue的人对于全局变量管理工具vuex都觉得很神秘,今天就用很通俗的大白话协助大家理解一下vuex,作者的vue项目使用vue脚手架搭建的,用脚手架搭建的项目会在src文件夹下有一个stor ...

随机推荐

  1. C#OpenCvSharp YOLO v3 Demo

    效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.D ...

  2. Web、Android等程序开发中src引入外部文件和资源的方法总结

    方法一:使用相对于当前文件(源文件)的相对路径 使用 ../ 对于这个例子来说 ../ 把路径带到了项目根目录的下一级目录 1 <script src="../static/js/wo ...

  3. ET介绍——Actor Location

    Actor Location Actor模型只需要知道对方的InstanceId就能发送消息,十分方便,但是有时候我们可能无法知道对方的InstanceId,或者是一个Actor的InstanceId ...

  4. #搜索,容斥#洛谷 2567 [SCOI2010]幸运数字

    题目 问区间\([l,r],l,r\leq 10^{10}\)中有多少个数是 数位由6或8组成的数的倍数(包括本身) 分析 数位由6或8组成的数最多有两千多种, 这可以直接一遍暴搜得到 对于区间\([ ...

  5. 如何利用OpenHarmony ArkUI的Canvas组件实现涂鸦功能?

    简介 ArkUI是一套UI开发框架,提供了开发者进行应用UI开发时所需具备的能力.随着OpenAtom OpenHarmony(以下简称"OpenHarmony")不断更新迭代,A ...

  6. 深入学习 XML 解析器及 DOM 操作技术

    所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML XML 解析器 在访问XML文档之前,必须将其加载到XML DOM对象中 所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XM ...

  7. 用于多视角人群计数的协同通信图卷积网络 Co-Communication Graph Convolutional Network for Multi-View Crowd Counting

    Multi-Camara Methods Co-Communication Graph Convolutional Network for Multi-View Crowd Counting 论文ur ...

  8. HarmonyOS Codelab 优秀样例——购物应用,体验一次开发多端部署魅力

    一. 样例介绍 本篇Codelab基于自适应布局和响应式布局,实现购物应用在手机.折叠屏.平板不同屏幕尺寸设备上按不同设计显示.通过三层工程结构组织代码,实现一次开发,多端部署 . 手机运行效果如图所 ...

  9. WAF 原理入门

    WAF 入门 WAF 功能 WAF 全称叫 Web Application Firewall,和传统防火墙的区别是,它是工作在应用层的防火墙,主要对 web 请求/响应进行防护.那么 WAF 有什么功 ...

  10. Spring Boot 项目五维度九层次分层架构实现实践研究——持续更新中

    var code = "12433d02-b242-4fd2-937d-750761a365ea" 说明:本博文有参考一些技术博主的思路,据实践内容及代码持续总结更新中. 五个分层 ...