vue问题

news2024/9/21 22:32:43

一、路由

  1. hash模式(location.hash + hashchange 事件)
    hash 模式的实现方式就是通过监听 URL 中的 hash 部分的变化,触发haschange事件,页面做出不同的响应。但是 hash 模式下,URL 中会带有 #,不太美观。

  2. history模式
    history 路由模式的实现,基于 HTML5 提供的 History 全局对象,它的方法有:history.go():在会话历史中向前或者向后移动指定页数
    history.forward():在会话历史中向前移动一页,跟浏览器的前进按钮功能相同
    history.back():在会话历史记录中向后移动一页,跟浏览器的后腿按钮功能相同history.pushState():向当前浏览器会话的历史堆栈中添加一个状态,会改变当前页面url,但是不会伴随这刷新
    history.replaceState():将当前的会话页面的url替换成指定的数据,replaceState 会改变当前页面的url,但也不会刷新页面
    window.onpopstate:当前活动历史记录条目更改时,将触发popstate事件

    hsitory模式  ng配置location / {    root  'G:\dist' ;index  /index.html; try_files $uri $uri/ /index.html; }

  3. query和params传参
    query更加类似于我们ajax中get传参,params则类似于post,说的再简单一点,前者在浏览器地址栏中显示参数,后者则不显示(要想显示在router中配置/search/:id)
    params参数:属于路由中的一部分,在配置路由的时候,必须占位
    path:'/search/:id?' (?可传可不传 router配置中)
    this.$router.push({ name:"Home", params:{ id:this.id } })
    this.$router.push({ path:"/home", query:{ id:this.id } }

 二、defer (推迟; 延缓; 展期)立即下载延期执行

        async(异步)立即下载立即执行

三、vue 组件传值

  1. props和emit:父子组件传值
  2. provide和inject:父子组件或者爷孙组件传值 (单向向下传递)
  3. $parent,$root,$chidren:父子组件传值
  4. vuex
  5. 事件总线(vue实例)(全局污染,直接给vue挂载属性不推荐)
  6. $refs
  7. $attrs、$listeners:父子组件传值
    v-bind="$attrs"  可以拿到父级除了prop外其他值
    v-on="$listeners"  this.$emit("event"); event是父组件方法,子组件中可以直接触发父组件方法,不用@event=“event” 接收

四、vuex
        state   放置状态相关的信息  this.$store.state.name
        mutations其实就相当于我们vue里面的methods  同步修改数据 this.$store.commit('emit','参数')
        actions 异步操作获取数据,通过 commit('EMIT_ANCHOR_MENU', anchorMenu) 改变state
                this.$store.dispach('emit','参数')
        getters  计算属性
        modules 模块拆分
 

 

 vuex持久化   vuex-persistedstate 、vue-persist

mport { createStore } from 'vuex'
+import createPersistedstate from 'vuex-persistedstate'
 
import user from './modules/user'
import cart from './modules/cart'
import cart from './modules/category'
 
export default createStore({
  modules: {
    user,
    cart,
    category
  },
  plugins: [
    createPersistedstate({
      storage: window.sessionStorage, 
      key: 'erabbit-client-pc-store',
      paths: ['user', 'cart.user']
   })
  ]
})

五、

观察者Watcher 依赖收集器Dep

  • Dep的作用是收集观察者以及当数据发生变动时通知观察者去更新
  • 每一个属性都有自身的dep,接着添加watcher,在每次数据变动时(即set),通知自身的dep,dep通知其中watcher去完成视图更新
    class Dep {
        constructor () {
            this.subs = []
        }
        // 收集观察者
        addSub (watcher) {
            this.subs.push(watcher)
        }
        // 通知观察者去更新
        notify () {
            this.subs.forEach(w => w.update())
        }
    }
    

    Watcher观察者主要作用是接收自身Dep的通知后执行update()函数去更新视图
    Observer和Dep的关联
    顺序是这样的,先new Vue()然后new Observer()然后new Compile()
    new Observer()时创建属性各自的dep
    new Compile()new Watcher(),执行new Watcher()时:会先绑定Dep类上的target为这个new Watcher(),接着执行,需要获取数据getOldVal(),就会执行这里的get(),这样子就顺利把每个属性的watcher添加到各自的dep中了
    在数据发生变动时,dep.notify()即可

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

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

相关文章

【多线程初阶三】简单了解wait和notify方法~

目录 🌟1、wait() 🌟2、notify() 🌟1、wait() (1)wait()方法与notify()方法都是Object类中的方法。 (2)wait()是让线程等待一段时间,死等——>状态WAITING:没有时间限制的等待.…

MySQL 高级(进阶) SQL 语句一

一、高级SQL语句(进阶查询) 先准备2个表 一个location表: use kgc; create table location (Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New York); insert int…

如何判断CRM软件的好坏?2023年CRM系统排行榜前三名是什么?

CRM客户管理系统经过20余年的发展,收获了越来越多企业的认可,成为企业数字化转型必不可少的一环。很多企业都有上线CRM软件的计划,但精准的找到一款适合自身的产品十分不易,今天我们就来盘点2023年CRM软件排行榜。 一、CRM的含义…

Intellij中使用Spotless 格式化代码

Spotless简介 在一些大型项目或开源项目,由于开发人员太多,导致各个代码格式不统一。会让整体项目的代码可读性变差。统一代码格式使用maven中的Spotless插件就是不错的选择。 Spotless 是一个代码格式化工具,它有以下功能: 支…

300. 最长递增子序列

300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子…

tp6 对接阿里云短信

1、获取AccessKey ID,AccessKey Secret,第一次会提示需要创建 2、添加签名 3、创建模板 composer版本太老了,可能会导致下载失败,建议升级下版本 官方提供的最新依赖版本,我的会报错,下载不了,提示用2.0.…

Android Studio 下真机调试

文章目录 一、开启真机调试二、断开真机调试 一、开启真机调试 准备USB调试线,一端插在电脑USB接口上,另一端插在手机充电口上。 下面以自己的手机(huawei nova 5 )为例:点击手机界面上的设置应用。 然后往下找到 【关…

经典神经网络(1)LeNet及其在Fashion-MNIST数据集上的应用

经典神经网络(1)LeNet 1、卷积神经网络LeNet 之前对于Fashion-MNIST服装分类数据集,为了能够应⽤softmax回归和多层感知机,我们⾸先将每个大小为28 28的图像展平为⼀个784维的固定⻓度的⼀维向量,然后⽤全连接层对其进⾏处理,此…

函数式接口的介绍和使用(FunctionInterface)——Consumer,Supplier,Predicate、Function

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为 lambda 表达式。 函数式接口都添加了 FunctionalInterface 注解,这个是jdk1.8才引进的。例如 因为函数式接口里面只是…

【C++】| 01——泛型编程 | 模板

系列文章目录 【C】| 01——泛型编程 | 模板 文章目录 1. 认识泛型编程2. 函数模板1.1 函数模板的语法1.1.1 定义模板1.1.2 应用模板实现函数1.1.3 使用模板函数(实例化)1.1.3.1 隐式使用(实例化)1.1.3.2 显式使用(实例化)1.1.3.3 使用函数模板的注意事项(实例化) 2. 类模板2.…

第1章 Nginx简介

基于 Nginx版本 1.14.2 ,Tomcat版本 9.0.0 演示 第1章 Nginx简介 1.1 Nginx发展介绍 Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器。 Nginx 特点是占有内存少,并发处理能力…

南京邮电大学数据库实验二(DBMS的数据库保护)

文章目录 一、实验目的和要求二、实验环境(实验设备)三、实验原理及内容(1) DBMS的数据库保护功能(2) 安全控制中的访问控制机制(3) 事务的提交与回滚(4) 并发控制的锁机制 三、实验内容1.以root账户登录数据库管理系统,创建用户U1和U2,密码自定。2.创建…

Redis 入门教程(简单全面版)

1 安装: 1.1 生产环境安装 注意: 1、如果安装过程有问题可以参考源代码中的 README.md 文件 2、如果服务器只安装一个 redis 通常选择 /usr/local/redis 作为安装目录,如果安装多台则建议带上 服务名称 区分(建议带上 服务名称 区…

jvm-狂神课程

一、JVM JVM就是Java虚拟机,Java虚拟机就是JVM 1. JVM位置 1、Java程序(跑的环境是在jvm(虚拟机)跑的,也可以说是在jre上跑的)java运行是需要在特定的环境的也就是这个jre这种。 2、jvm(也就是…

别不信:这些细节关乎你的物联网设备的命运!

《高并发系统实战派》-- 值得拥有 一、设备接入层网络协议的意义 随着物联网的发展,越来越多的设备需要接入云平台进行远程监控和管理。设备接入层网络协议起到了承担设备接入网络的功能,为物联网平台提供了数据交互的基础。设备接入层网络协议对于物联…

【C++ 入坑指南】(01)学习路线

入门 1. 推荐书籍 《Accelerated C》,《Essential C》二选一精读。《A Tour of C》选读。 《Accelerated C》很适合新手,因为只有短短不到 300 页,在普遍一样的入门书籍里面是一股清流。容易通读完,减少挫败感。就这样的篇幅&am…

【每天学习一点新知识】如何绕过CDN查真实ip

1、什么是CDN 为了防止流量过大网络堵塞,我们就在靠近用户的地方,建一个缓存服务器,把远端的内容复制一份,放在这里,简单来说就是将内容缓存在终端用户附近。 2、怎么绕过cdn找到远端服务器的真实ip呢? &…

FS2462是泛海微自主开发的5A降压型同步整流芯片

FS2462是泛海微自主开发的5A降压型同步整流芯片,是国内首家大电流同步5A芯片,内部集成极低RDS内阻20豪欧金属氧化物半导体场效应晶体管的(MOSFET)。输入工作电压宽至4.75V到21V,输出电压1.0V可调至20V。5A的连续负载电流输出可保证系统各状态…

Landing AI:计算机视觉数据标注AI平台

【产品介绍】 Landing AI是一家由人工智能领域的知名专家、Coursera联合创始人、前百度首席科学家、Google大脑创始负责人吴恩达博士创立的公司,旨在为各行各业提供先进的计算机视觉解决方案。 Landing AI的核心产品是LandingLens,一个基于云端的计算机视…

前端开发代码规范工具

规范化是前端工程化的一个重要部分。现在,有许多工具能够辅助我们实行代码的规范化,比如你一定知道的 ESLint 和 Prettier。 今天,来聊聊这些工具的工作原理和基本使用,了解它们是如何发挥作用的,以及如何更好地利用这些工具去规…