Vue3 vite:is a JavaScript file. Did you mean to enable the ‘allowJs‘ option? vue3+vite 下运行npmp build。
一个域名实现跳转pc和移动端 从navigator.userAgent可以知道用户是以何种设备打开的页面,所以就可以封装一个函数来判断该终端是不是pc,从而选择要不要跳转。若用户是以移动终端打开的网站,实现自动跳转到移动端的网页。举个例子:如果是移动端打开就跳转到京东m站。
Pinia修改State的四种方式 缺点:不能直接修改原来的state,对state中的数组或对象不能增加或删除,只能创建新的对象进行赋值。在Pinia中有四种方式可以修改state,这四种各有利弊,可以根据使用场景决定使用哪种方式修改。优点:可以一次修改多个,可以修改原来的state,对state中的数组或对象可以使用方法修改。可通过$patch传函数参数修改, 可同时修改多个数据, 可对数组或对象使用添加/删除方法。缺点:不能一次修改多个,而且还需要引入storeToRefs,比第一种方法多了一点代码。优点:可以一次性修改多个。
微信小程序之组件的四种传值方式 会覆盖掉原来该 key 对应的内容。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。这时因为传递的是对象类型的数据,到另一个页面获取时会发现是"[object,object]",解决方法是利用JSON.stringify()和JSON.parse()我们同时也可以利用 app.js 中的 globalData 将数据存储为全局变量,在需要使用的页面通过 getApp().globalData 获取。
css3 transition的各种ease效果 ease-in-out 先慢,再快,再慢停止。ease 快启动,慢停止,物理原则。ease-out 先快,后慢。ease-in 先慢,后快。linear 平均速度。
js实现数组扁平化的几种方式 先通过toString()把数组转成String对象,再结合split() 方法使用逗号分隔符将String对象分割成字符串数组,再用map函数将数组中的字符串转成数字。通过循环递归的方式,一项一项地去遍历数组,如果每一项还是一个数组,那么就继续往下遍历,实现方式。数组的扁平化就是将一个嵌套多层的数组转换为只有一层的数组,扁平化也是面试中常见的考题。
vue3的逻辑复用 在项目开发中,有两个功能特别类似,如果单独实现,会有很多重复的代码在v3中,我们利用组合式api的特点,他们抽象出来,进行封装,把得到函数写在一个单独的模块中,导出,以供复用例如:在做xxx项目,有一个“关注”功能,他们调用的api接口是同一个,就是一个参数不同,但是我们有额外的loading功能也集成在里面针对这种情况,我封装了一个自定义的 hook函数,在函数的内部封装请求和loading值的修改,返回这个loading值和调用api函数代码如下:页面复用。
px,vw/vh,rem的区别 px:绝对单位,页面按精确像素展示em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值rem:相对单位,可理解为root em, 相对根节点html的字体大小来计算vh、vw:主要用于页面视口大小布局,在页面布局上更加方便简单。
历史最全vue2/3!!响应式原理 vue2 响应式原理Vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。主要分为以下几个步骤:需要 observe 的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter 和 getter 这样的话,给这个对象的某个值赋值,就会触发 setter,那么就能监听到了数据变化。
get请求与post请求区别 get参数直接暴露在url,不安全(一般查询类数据都是get)post参数在请求体中,更加安全(一般登录注册必须是post)get有大小限制,不同浏览器大小限制不同。get在url后面拼接(请求行)post在请求体传参。post没有大小限制。