自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 以下是一些可能基于 “熟悉 Vue-Router、Vuex 进行状态管理与组件数据共享” 技能的面试题及详细解析:

这样,Vuex 中的状态数据就会在浏览器刷新或关闭后仍然保留,下次打开页面时可以从本地存储中恢复状态。当多个组件同时修改 Vuex 中的同一个状态时,可能会出现什么问题?谈谈 Vue-Router 中的导航守卫有哪些?分别在什么阶段触发?请说明 mutations 和 actions 的区别是什么?如何在 Vue-Router 中实现路由懒加载?如何在 Vuex 中实现数据持久化?在 Vue 项目中,如何实现动态路由?在 Vuex 中,如何进行模块划分?请简述 Vue-Router 的工作原理。

2024-08-25 20:24:48 1465

原创 微信小程序骨架屏

⑤ 在onLoad 中页面加载前定义 isLoading.value=true, 在加载完后定义 isLoading.value=false.骨架屏是页面的一个空白版本,通常会在页面完全渲染之前,通过一些灰色的区块大致勾勒出轮廓,待数据加载完成后,再替换成真实的内容。① 在相应微信小程序页面右下角点生成骨架屏,左侧小程序目录会自动生成 .wxml 、.wxss 文件,⑥ 在生成骨架屏页面中 v-if="isLoading" v-else 定义显示与隐藏。

2024-08-16 19:02:09 485

原创 微信小程序用 pinia数据化存储信息

/注意:微信小程序的本地存储,和H5本地存储不一样,必须写 storage: { setItem(){},//清理会员信息,退出时使用,赋值undefined。//调整为兼容多端的API。//保存会员信息,登录时使用。//记得 return。//TODO:持久化。//定义 Store。

2024-08-16 18:54:12 535

原创 activeIndex.value=ev.detail!.current !含义

󠁪 运算符被放在了 ev.detail󠁪 后面,紧跟着一个点操作符 .current󠁪。在这里,它是 TypeScript 的一种类型断言(Type Assertion),表示 ev.detail󠁪 不可能是 null󠁪 或 undefined󠁪。这种写法告诉编译器,“我相信 ev.detail󠁪 总是有值的”,从而避免了可能产生的类型检查警告或错误。请注意,虽然这种写法在 TypeScript 中很常见,但在 JavaScript(不带类型系统的)中并不常用。在纯 JavaScript 环境下,!

2024-08-09 08:08:46 130

原创 什么是BOM和DOM?

总的来说,DOM 是用于访问和操作网页文档的对象模型,而 BOM 是用于控制浏览器窗口及其各个组件的对象模型。它将文档中的每个组件(如元素、属性、文本等)都看作是一个对象,开发者可以使用 JavaScript 来操作这些对象,从而动态地改变页面的内容、结构和样式。BOM 的核心对象是 window 对象,它表示浏览器窗口,并且是 JavaScript 中的全局对象。window 对象提供了许多属性和方法,用于控制浏览器窗口的各个方面,如页面导航、定时器对话框等。它提供了一组对象,用于访问和控制浏览器窗。

2024-08-02 18:44:11 502

原创 简述wx.navigateTo(),wx.redirectTo(),wx.switchTab(),wx.navigateBack(),wx.reLaunch() 区别?

需要注意的是,在实际应用中,通常不会直接使用 pop()󠁪 方法来移除当前页面,因为这会影响 pageStack󠁪 的状态,而getCurrentPages()󠁪 的主要用途是从其中获取特定页面的信息而不是修改它。如果你的目的是获取当前页面的引用而不改变页面栈的状态,你应该使用pageStack[pageStack.length - 1]󠁪 而不是 pop().这意味着如果 pageStack󠁪 是由微信小程序页面组成的栈,那么 currentPage󠁪 将会是当前页面的实例。,打开到应用的某个页面。

2024-08-01 09:35:22 413

原创 小程序怎么实现下拉刷新

两种。

2024-08-01 08:50:15 342

原创 Bootstrap 栅格系统的⼯作原理?(面试题)

栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。

2024-07-30 16:03:40 299

原创 浏览器内核的理解

渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染擎可以显示 html、xm!文档及图片,它也可以借助插件(一种浏览器扩展)显示其他类数据,例如使用PDF读器插件,可以显示PDF格式。JS引擎:解析和执行javascript来实现网页的动态效果。最开始渲染引擎和JS引擎并没。有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

2024-07-27 16:26:48 177

原创 改变this指向的方法有哪些

使用箭头函数(ArrowFunction):箭头函数没有自己的this,它会继承外部作用域的this。因此,在箭头函数中使用this时,它会指向定义时所在的上下文。2、使用ca11()或apply()方法:ca11()和apply()方法可以立即调用函数,并显式指定函数内部的this值。它们之间的区别在于参数的传递方式。bind()方法会创建一个新的函数,并将其内部的this绑定到指定的对象。

2024-07-27 16:23:19 235

原创 微信小程序案例

如果包含,则认为 refresh token 可能已经失效,需要用户重新登录,并在登录后返回到之前的页面。方法获取当前页面栈,即当前打开的所有页面的信息列表。页面栈是一个数组,其中每个元素都是一个页面实例。附加到 URL 上。这样,在登录完成后,可以通过这个参数将用户重定向回原来的页面。: 获取当前页面的路由(路径),这个路径将在登录之后用于跳转回当前页面。: 从页面栈数组中删除最后一个元素,即当前页面的实例。//获取当前页面的路径,保证登录成功后能跳到原来页面。参数,可以将用户送回到他们之前所在的页面。

2024-07-27 16:11:19 300

原创 Null和 Undefined 两者区别?

一 般 变 量 声 明 了 但 还 没 有 定 义 的 时 候 会 返 undefined , null 主 要 用 于 赋 值 给 一 些 可 能 会 返 回 对 象 的 变 量 ,作 为 初 始 化。3、undefined 在 JavaScript 中不是一个保留字,这意味着可使用undefined来作为一个变量名,但这样做法非常危险,会影响对undefined 值的判断,我们可以通过一些方法去获得安全的undefined值,比如说void()对这两种类型进行比较会返回true,使用。

2024-07-23 19:29:05 430

原创 小程序发布流程?

2.获取微信小程序的AppID。3.下载微信小程序开发者工具。5.去微信公众号配置域名。1.注册微信小程序账号。4.创建demo项目。

2024-07-21 17:01:32 142

原创 如何理解 Composition API 和 Options API

① 优点:易于学习和使用,每个代码有着明确的位置(例如:数据放data 中,方法放methods方法中)③ 虽然 optionsAPI 可以通过minxins 体悟相同的逻辑,但是并不是特别好维护。① compositionsAPI 是基于逻辑功能阻碍代码是,有一个功能 api 相关放在一起。即使就算不用compositionAPI ,用 vue2 的写法也完全兼容。② 即使项目大了,功能多了,也能快速定位功能相关的api。② 缺点:相似的逻辑,不容易复用,在大项目中尤为明显。

2024-07-21 15:45:27 322

原创 pinia 与 vuex 的区别

state+getters+actions+mutations+module ,调用 mutations 里方法修改,适用于更大型和复杂的项目。pinia 轻量级小,可创建多个全局仓库,有 setup ,store,类似于组合API,支持TS,vuex 结构复杂,一个仓库多模块化开发, 类似于选项API,支持TS,不过要安装插件,option store state+getters+actions 可直接修改数据。

2024-07-21 15:09:07 277

原创 小程序的生命周期

①onLoad: 页面加载完成时执行,只执行一次,常用于获取地址参数和网络请求。②onShow:页面显示状态时执行,常用于动态更新或状态。③onReady: 在页面初次渲染完成时执行,只会执行 1 次,常用于节点操作或动画交互等场景。④onHide: 在页面处于不见状态时执行,常用于销毁长时间运行的任务,如定时器。需要定义在 lifetimes 中,①created 组件创建时触发,类似于vue 中的created 生命周期,该申明周期中不能调用 this.setData。

2024-07-19 11:20:28 189

原创 微信小程序

概念:小程序是一种不需要下载安装即可使用的应用,实现了“触手可及”的梦想,用户通过扫一扫或搜一搜即可打开应用,体现“扫完即走‘ 理念,应用无处不在,随时可用,无需安装卸载。好处优点(小程序由来): 快速的加载,更强大的能力,原生体验,易用且安全微信数据开放,高效、简单的开发。js : 逻辑处理(vue组件中script,如:用于保存一个数据值)json : 小程序页面配置(style)相当于vue中template。WXML 的组件样式。

2024-07-18 08:19:29 559

原创 如何使用这个XMLHttpRequest?

/ JSON.parse是 console.log(JSON.parse(xhr.response).message);//JSON.parse是字符串转为对象或数组的其他形式。// 状态值=4表示成功 // console.log('改变', xhrs.readyState);//对核心对象进行实例化。// console.log('改变', xhrs.readyState);xhrs.open(请求方式,请求链接地址,同步/异步,用户名,密码)//有5个参数--》ajax是异步的,

2024-07-11 10:11:43 1115

原创 get和 post的区别

4.GET 使用 URL 或 Cookie 传参。而 POST 将数据放在 request BODY 中.3.了解get 方式提交的数据最多只能有 1024 字节,而 post 则没有此限制。5.GET 与 POST 都有自己的语义,不能随便混用。

2024-07-10 21:29:10 152

原创 promise回调地狱

/城市 get方法用params传参,post方法用data传参。回调地狱:在回调函数中调用回调函数 缺点:可维护性差,可读性差引入axios。// innerText给文本添加内容。//例子获取省份,城市,地区。</select> 城市。</select> 地区。

2024-07-10 21:26:07 2050

原创 - vuex路由:

2.getters:计算属性的,通过筛选数组中大于2的,需要去计算。3.mutations:唯一一个的能修改state内数据的方法,同步。vuex vue的状态管理工具(状态就是数据的管理仓库。话语中级语法modules是vuex的高级用法。react---redux(状态管理工具)vue3--pinia(小菠萝)1.state:--存放数据。5.modules:模块化。4.actions:异步。

2024-07-10 09:18:43 631

原创 useRouter useRoute router-link

② 变量.push({ path:' ' ,query:{参数} }) 传参。useRouter带 r 的,可以跳转路由,并且在跳转路由的同时发送参数.页面中 可使用vue2的 $ router 等,script 不可以。useRoute 不带r 的,可获取对应的参数。变量2 query 获取传参。参数是对象,不需要写{ }

2024-07-01 18:45:46 398

原创 Vue 常见的指令有哪些?

v-else 给 v-if 添加一个 "else" 块,必须跟在 v-if之后。v-once 执行一次性的插值【当数据改变时,插值处的内容不会继续更新】v-pre 显示指令中原始信息,静态的内容不需要编译,可以加快渲染。v-if 判断 是否创建或销毁dom元素。v-show 是否显示/隐藏dom元素。v-bind 动态绑定属性。v-model 数据双向绑定。v-on 用来进行事件的绑定。v-for 循环。

2024-06-27 20:07:36 214

原创 字符串常用的方法有哪些?

2、字符串的搜索(indexOf()、lastIndexOf()、startsWith()、endsWith()、contains()):使用indexOf()方法可以从字符串的首部进行搜索,当前字符串中指定字符串的下标位置,返回值为int类型。如果存在,则返回该子字符串的下标位置。8、格式化字符串(format()):字符串提供了format()静态方法,可以传入其他参数,替换占位符,然后生成新的字符串。6、分割字符串(split()):要分割字符串,使用split()方法,并且传入的也是正则表达式。

2024-06-27 20:05:41 517

原创 说一下什么是mvvm模式

View 的变化会自动更新到 ViewModel , ViewModel 的变化也会自动同步到 View 上显示。这种自动同步是因为 ViewModel 中的属性实现了 Observer(观察者) ,当属性变更时都能触发对应的操作。Model代表数据模型,数据和业务逻辑都在Model层中定义;View代表UI视图,负责数据的展示;ViewModel负责监听Model中数据的改变并且控制视图的更新,处理用户交互操作;

2024-06-27 19:53:10 219

原创 数组中 find 和filter 区别

find用于查找并返回数组中第一个满足条件的元素,适合于只需找到一个匹配项的场景。filter用于筛选出所有满足条件的元素形成新数组,适合于需要收集所有匹配项的情况。

2024-06-09 20:21:07 295

原创 数组中slice和splice 两者区别?

slice适合于数据提取和复制的场景,因为它不改变原数组,保证了数据的原始性。splice适合于需要直接修改数组内容的场景,比如删除、插入或替换元素,它的操作更为灵活但也需要注意其会改变原数组的特性。选择哪个方法取决于你的具体需求:是否需要保持原数组不变,以及是否涉及到元素的增删改。

2024-06-09 19:47:16 299

原创 js中常用的数组操作方法

forEach--循环 7个内置操作方法(会直接改变原数组本身,会有) 在v2的vue--》obeserver push:---末尾添加(两个p是末尾) pop:---末尾删除 shift:---头部删除 unshift:---头部添加 sort:--排序 reverse:--反转数组 splice:--增删改,不能查(本质删除)--返回的是删除的元素组成的数组,splice(从0开始,要删除的个数,替换的元素) 注意:只要是添加的:返回值是新数组的长度 删除

2024-06-09 19:03:24 275

原创 vite 构建工具以及创建项目步骤

使用原生 ESModule 通过 script 标签动态导入,访问页面的时候加载到对应模块编译并响应。注明:项目打包的时候最终还是需要打包成静态资源的,打包工具 Rollup。vite是一种新型前端构建工具,能够显著提升前端开发体验。,然后才能提供服务,更新速度会随着代码体积增加越来越慢。可以创建 vue 项目吗?掌握:使用 vite 构建工具创建项目。构建项目,谁更快体验更好?(二) vite创建项目。

2024-06-03 11:14:11 282

原创 ts类型,函数指定类型

/小驼峰命名法和大驼峰命名法统称为驼峰命名法,驼峰命名法是电脑编程时的一套命名规则。// --大驼峰命名--一个类型被多次使用:当有一个标识符时,首字母大写,多个标识符时,所有单词首字母都大写。//第二种有属性的对象,(定义的类型前面有几个后面就定义几个,前面没定义,后面定义了会报错。// 小驼峰命名法--一个标识符首字母小写,多个标识符时,第一个首字母小写,其他首字母大写。// void 类型--如果函数没有返回值,定义函数类型时返回值类型为:void,//对象类型 是属性和方法组成的集合。

2024-05-31 17:15:09 348

原创 es6新增的属性

箭头函数 ()=>{},没有this指向。flat(层数) 数组扁平化。模板字符串 `${}`generator函数。

2024-05-21 17:03:34 326

原创 v2 和v3的生命周期函数

2.onRenderTriggered函数:当响应式依赖的变更触发组件渲染时调用。1.onRenderTracked函数:当组件渲染过程中追踪到响应式依赖时调用。setup--》替换掉 beforeCreate 之前执行。相比较于vue2,vue3中新增两个全新钩子函数。onBeforeUnMount //销毁前。onBeforeUpdate 更新前。onUnmounted //销毁后。onUpdated 更新后。

2024-05-21 17:01:55 387

原创 vue 组件通信

1.⽗传⼦: 在⼦组件的标签上定义属性 ⼦组件通过props来进⾏接受,可以通过数组的⽅式进⾏接受,也可以通过对象的⽅式来接收。如果⽗组件没有传递属性,⼦组件可以default来设置默认值,如果父组件中中传的数据是对象或数组的话,子组件对象形式的default 要写成工厂函数形式。2.⼦传⽗:⼦组件通过this.$emit("⾃定义的事件",要传给⽗组件的数据), ⽗组件通过⼦组件的标签监听⾃定义的时间,通过⽅法来接收传递的数据。事件,可以父传子,可以获取传过来的数据,也可以像父组件传递数据。

2024-05-21 17:00:44 353 2

原创 vue的常用的指令

v-text:将数据作为纯文本插入页面中,不会解析HTML 标签,适用于不需要解析HTML 标签 文本内容的情况。v-model:双向绑定表单元素和数据,可以在表单元素上实现数据的双向绑定。v-show:根据条件显示或隐藏元素,当条件为真时,元素显示,否则隐藏。v-html:将数据绑定到元素的HTML内容中,可以实现HTML的渲染。v-text:将数据绑定到元素的⽂本内容中,可以实现数据的单向绑定。v-if:根据条件渲染元素,当条件为真时,元素被渲染,否则不渲染。v-for:循环渲染元素,可以遍历。

2024-05-20 17:48:19 202 1

原创 vue的diff算法

如果真实DOM改变,虚拟DOM也会改变,就会形成一个新的虚拟DOM,新虚拟DOM和旧虚拟DOM,两者对比的过程就是。diff 算法目的:找到两者的一个差异,最小化去更新试图,本质上就是比较两个js 对象的差异。虚拟DOM(里面包含标签名及标签的属性,及子标签的名称属性和文本节点。是表示真实的DOM Js 对象。

2024-05-17 20:03:45 136

原创 ts中的 class 类

/这个this指的class Animal。//注意:当我们对一个类进行new 了一个实例就会自动调用constructor 构造函数。// 构造函数constructor。// class 类名(首字母大写){ }//ts中的 class类。//new 创建了一个实例。

2024-05-16 23:53:00 209

原创 类型别名(v3+ts)

type 自定义类型的名字={花括号}-->花括号里面的内容用逗号隔开,可以声明基本数据类型。name:'张三',gender:'男'

2024-05-16 23:50:58 426

原创 什么是接口?(vue3+ts)

[props:string]:string|undefined|boolean,//索引签名(出来的属性名是string类型还可以加任意类型。* interface 声明的两个同名接口回自动合并 ,而type类型别名不可以,会报错。interface 声明的变量名后面直接是{ },type后面是 '={ }'* 实例:用户注册:账号、密码、手机号、邮箱、身份站好、验证码。* 接口可以实现继承,约束函数,对象,数组(总称引用数据类型)* idCard:'学生',* name:'张三',

2024-05-16 23:47:43 190

原创 关于v3的scss混入宏基本用法

2.把vue组件中的定义的颜色属性传到mon.sccs文件中。scss混入可以存储共有的一些属性。/*切记单独在scss中设置样式时,属性名后的括号不要用 "" 号引起来*//*切记单独在scss中设置样式时,属性名后的括号不要用 "" 号引起来*/*@include border(参数一,参数二,参数三);/**1.在assets中新建一个 mon.scss文件,// scss 混入存储共有的一些属性。/**引入混入模式的scss*//**引入混入模式的scss*//**传多个参数*/

2024-05-13 19:18:45 338 1

原创 v3 中的父子传参

/ context中有四个属性,分别是attrs,slots,emit,expose。// props表示传过来的数据,打印的是 Proxy(Object)// setup中有两个参数,分别是props,context。// attrs表示的是父组件传递过来的props,// slots表示的是父组件传递过来的插槽。//父传子点击添加父组件中的数据。// context表示一个上下文对象。// emit表示的是触发自定义事件。// return 返回。// 非语法糖结构的书写。// 非语法糖的格式写。

2024-05-13 16:22:46 378 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除