vue路由守卫 比如说,当点击商城的购物车的时候,需要判断一下是否登录,如果没有登录,就跳转到登录页面,如果登陆了,就跳转到购物车页面,相当于有一个守卫在安检1:全局钩子: beforeEach、 afterEach2:独享守卫(单个路由里面的钩子): beforeEnter3:组件内守卫:beforeRouteEnter、beforeRouteLeave①to: Route: 即将要进入的目标路由对象(to是一个对象,是将要进入的路由对象,可以用to.path调用路由对象中的属性)
vue脚手架配置代理(解决跨域问题) 跨域问题是指协议,主机,端口有一个以上不同解决方法:1,cors(最标准)2,jsonp(script src)(比较巧妙)3,代理服务器(最常用)(1) nginx比较难需要对后端比较熟悉,一般用第二种(2)vue-cli流程:端口为8080的主机要向端口为5000的主机发送请求需要一个端口为8080的代理服务器(图上粉色)8080的主机向8080的代理服务器发送请求(没有跨域问题)
vue3一些API 通过使用 shallowRef() 和 shallowReactive() 来绕开深度响应。浅层式 API 创建的状态只在其顶层是响应式的,对所有深层的对象不会做任何处理,避免了对每一个内部属性做响应式所带来的性能成本,这使得属性的访问变得更快,可提升性能。
vue3组件通信(二) 数据在组件的自身(子组件),但根据数据生成的结构需要组件的使用者(父组件)来决定。(新闻数据在News组件中,但使用数据所遍历出来的结构由App组件决定)注意:$attrs会自动排除props中声明的属性(可以认为声明过的 props 被子组件自己“消费”了)$attrs用于实现当前组件的父组件,向当前组件的子组件通信(祖→孙)。$refs:值为对象,包含所有被ref属性标识的DOM元素或组件实例。$ attrs是一个对象,包含所有父组件传入的标签属性。$parent:值为对象,当前组件的父组件实例对象。
vue3组件通信(一) emit()传递事件名和具体参数defineEmit()声明可以触发的事件原生事件:1.事件名是特定的(click、mosueenter等等)2.事件对象$event: 是包含事件相关信息的对象(pageX、pageY、target、keyCode)自定义事件:1.事件名是任意名称2.事件对象$event:是调用emit时所提供的数据,可以是任意类型!!!3.命名方式尽量不要驼峰式,而是采取keybab-case式,即send-toy父组件
vue3pinia 目录是storeStore 包含了状态(state)、获取器(getters)和操作(actions),相当于组件中的: data、 computed 和 methods。Store是一个保存:状态、业务逻辑 的实体,每个组件都可以读取、写入它。
vue3路由 2.路由组件:靠路由规则渲染出来的。1.路由组件通常存放在pages 或 views文件夹,一般组件通常存放在components文件夹。1.引入创建路由器并暴露,引入可能用到的路由组件 router/index.ts。history:createWebHistory(), //history模式。缺点:后期项目上线,需要服务端配合处理路径问题,否则刷新会有404错误。优点:URL更加美观,不带有#,更接近传统的网站URL。作用:控制路由跳转时操作浏览器历史记录的模式。3.一般组件:亲手写出来的标签。
vue3核心语法(二) newValue和oldValue值相同,都是新值,还是因为对象地址值没有改变,本质上assign在原对象上进行的是赋值。监视ref定义的【对象类型】数据:直接写数据名,监视的是对象的【地址值】,若想监视对象内部的数据,要手动开启深度监视。若修改的是ref定义的对象中的属性,newValue 和 oldValue 都是新值,因为它们是同一个对象。监视ref定义的【基本类型】数据:直接写数据名即可,监视的是其value值的改变。立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行该函数。
模块化(一)nodejs 模块化 是指解决一个 复杂问题 时,自顶向下逐层 把系统划分成若干模块的过程。对于整个系统来说, 模块是可组合、分解和更换的单元。1 .现实生活中的模块化2 .编程领域中的模块化编程领域中的模块化,就是 遵守固定的规则 ,把一个 大文件 拆成 独立并互相依赖 的 多个小模块。把代码进行模块化拆分的好处:① 提高了代码的 复用性② 提高了代码的 可维护性③ 可以实现 按需加载。
path+HTTP协议+IP+端口(nodejs) node.js运行环境让js可以实现其他后端语言几乎所有的语言,只要会js基本语法就能在node环境下进行后端开发。http模块专门用来创建服务的,就是把命令行窗口当成服务器来用,只支持http协议。req.on(“data”) 数据抓取使用有限制所以回调函数中要使用变量累积。req.url() 即可提取地址栏的数据不包括域名和端口号。创建服务的同时应该创建端口进行监听。console.log(req)//请求信息。console.log(res)//响应信息。console.log(“监听成功”);