• localstory,sessionstory,vuex,cook


    函数式组件

    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
  • 相关阅读:
    最佳实践:腾讯HTAP数据库TBase助力某省核心IT架构升级
    数据库中间件
    深入理解JVM—JVM内存模型
    【实战解析】基于HBase的大数据存储在京东的应用场景
    Only the storage referenced by ptr is modified. No other storage locations are accessed by the call.
    京东11.11:京麦服务市场交易平台备战实践
    gitignore 不起作用的解决办法 不再跟踪 让.gitignore生效,跟踪希望被跟踪的文件
    JAVA中的array是通过线性表还是链表实现的呢?
    在链表中,元素的"位序"概念淡化,结点的"位置"概念淡化
    微软开源项目提供企业级可扩展推荐系统最新实践指南
  • 原文地址:https://www.cnblogs.com/wd163/p/13662087.html
Copyright © 2020-2023  润新知