- 博客(198)
- 收藏
- 关注
原创 #Vue篇:环境变量process.env.VUE_APP_API_URL&import.meta.env.VITE_API_URL
环境变量文件同样需要以 .env 开头。
2025-03-11 10:07:50
575
原创 #vue3篇:dependencies 生产依赖&devDependencies 开发依赖
在使用 npm run build 进行项目打包时,只有 dependencies 中的依赖会被打包进去,而 devDependencies 中的依赖不会被打包。只在开发环境(本地开发、CI/CD)中使用,不参与生产代码运行。仅在开发阶段需要的工具,用于构建、测试、优化或格式化代码。项目运行时必须的依赖,直接参与代码逻辑或功能实现。在生产环境(如服务器、用户浏览器)中需要这些依赖。
2025-02-19 09:49:55
328
原创 #HarmonyOS篇:build-profile.json5里面配置products&&oh-package.json5里面dependencies依赖引入
工程配置信息,包括签名signingConfigs、产品配置Products等。其中products中可配置当前运行环境,默认HarmonyOS.文件记录了项目中所有依赖包的确切版本号,确保在不同环境中安装的依赖版本一致,避免因版本差异导致的问题。用于描述包名、版本、入口文件和依赖项等信息。
2025-01-21 17:04:06
692
原创 #HarmonyOs篇: 管理应用拥有的状态LocalStorage AppStorage
支持与 AppStorage 或 LocalStorage 中的属性建立单向或双向绑定。AppStorage应用全局的UI状态存储@StorageProp单向@StorageLink双向@Builder—自定义构造函数@LocalBuilder—维持组件父子关系@Componentbuild() {Row() {@Entry@ComponentRow() {Column() {build() {Column() {})
2025-01-21 16:41:10
1215
原创 #Uniapp: 订阅requestSubscribeMessage
【代码】#Uniapp: 订阅requestSubscribeMessage。
2025-01-15 08:34:32
506
原创 #Uniapp: uniapp国际化适配vue-i18n@9.1.9
【代码】#Uniapp: uniapp国际化适配vue-i18n@9.1.9。
2025-01-09 10:51:55
544
原创 #Vue3篇: 无感刷新token的原理JSESSIONID无感刷新和JWT接口刷新
= 基于这个后端是怎么更新token的==为了理解后端是如何更新 Token 的,我们需要考虑一个典型的基于 Token 的身份验证流程,特别是涉及 JSESSIONID 和自定义 Token(如 JWT, JSON Web Token)的情况。下面我将介绍两种常见的更新 Token 的机制:一种是基于会话的(使用 JSESSIONID),另一种是无状态的(使用 JWT>
2024-12-30 15:50:16
1237
原创 #Java篇:java项目init和写接口流程步骤详细
service(impl)—RoleServiceImpl 实现IRoleService。controller—RoleController 实现接口返回前端。service----IRoleService 继承Role。mapper—RoleMapper 继承Role。
2024-12-20 17:26:59
405
原创 #Js篇:pubilc protected private var let 的区别和联系
public、private 和 protected 是用来修饰类成员(属性或方法)的访问控制符。----classvar、let 和 const 则是用于声明变量的关键字。
2024-12-20 17:26:41
411
原创 #Java篇:@TableName @Data @Service @RestController 和 @RequestMapping @Autowired注解的理解
通过结合依赖注入和事务管理等功能,可以构建出高效且易于维护的服务层代码。@Mapper 是 MyBatis 和 MyBatis-Plus 框架中常用的注解,用于标识接口为 MyBatis 的映射器(Mapper)。Model 和 Mapper 之间的关系,Mapper层负责将来自数据库的结果集转换为Model对象实例,或者反过来将Model对象的数据保存到数据库中。HTTP 请求映射:通过 @GetMapping 注解,将特定的 HTTP GET 请求映射到控制器的方法上,简化了请求处理逻辑。
2024-12-20 17:25:27
329
原创 #Js篇:map结构转普通js普通对象
以上方法都可以将 Map 转换为普通的 JavaScript 对象。选择哪种方法主要取决于你的个人偏好和具体需求。Object.fromEntries 方法是最简洁和直接的方式,推荐在现代浏览器和环境中使用。
2024-12-17 20:15:00
477
原创 #Java篇:非常火热的Spring Boot典型项目结构
│ ├── config/ (配置类)│ ├── controller/ (控制器)│ ├── entity/ (实体类)│ ├── mapper/ (持久化映射器及DAO层)│ ├── service/ (业务逻辑接口)│ └── service/impl/ (业务逻辑实现)├── application.yml (应用配置文件)└── mapper/ (MyBatis Mapper XML 文件)|_annotation:放置项目自定义注解|_aspect:放置切面代码。
2024-12-17 11:27:38
365
原创 #UI框架篇:针对 ant-design-vue 版本 3.2.6 中 <a-select> 组件使用 mode=“combobox“ 时模式不生效的问题
如果你的应用程序正在开发或维护阶段,建议考虑迁移至 AutoComplete,以确保未来的兼容性和稳定性。在执行迁移的过程中,请务必仔细阅读官方文档,了解 AutoComplete 的所有特性和配置选项,以便充分利用其提供的功能。此外,考虑到用户体验的一致性,还应该对新组件的行为进行全面测试,确保它能够满足业务需求并且不会引入新的问题。这不仅符合官方推荐的方向,而且 AutoComplete 提供了更强大的功能集,例如更好的搜索体验和支持远程数据源等特性。迁移到 AutoComplete。
2024-12-12 21:38:14
539
原创 #Ts篇: Record<string, number> 是 TypeScript 中的一种类型定义,它表示一个键值对集合
因此,当你需要定义一个对象类型,并且该对象的所有键都遵循相同的模式(例如,都是字符串),并且所有值也遵循相同的模式(例如,都是数字),那么 Record 就是一个非常适合的选择。这为你的代码提供了更强的类型安全性,因为 TypeScript 编译器会在编译期间帮助你捕获非法的键或不匹配的值类型。综上所述,Record 是一种强大的工具,允许开发者精确地控制对象的结构,确保键和值符合预期的数据类型,这对于编写类型安全的应用程序非常重要。
2024-12-12 21:37:51
728
原创 #HarmonyOS篇:装饰器&LocalStorage&AppStorage
在功能层面上,依据@Prop单向绑定的特性,@State+@Prop适合用于非实时修改的场景,如编辑电话薄联系人信息时,展示编辑界面的子组件信息的修改要求不实时同步回父组件,需要等到编辑完成后点击“确认”按钮时才会以事件驱动的方式修改父组件的状态。被@Component装饰的组件最多可以访问一个LocalStorage实例和AppStorage,未被@Entry装饰的组件不可被独立分配LocalStorage实例,只能接受父组件通过@Entry传递来的LocalStorage实例。,两者指向同一个地址。
2024-12-12 21:37:28
899
原创 #Uniapp篇:路由pages.json里配置&路由跳转&组件的引入&样式引入
非h5端(包含小程序和App),Android平台运行在v8引擎中,iOS平台运行在iOS自带的jscore引擎中,都没有运行在浏览器或webview里。安装在uni_modules下,路径为uni_modules/插件ID/components/组件名称/组件名称.vue。安装在项目根目录的components目录下,并符合components/组件名称/组件名称.vue。传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。uni-app的js代码,h5端运行于浏览器中。
2024-12-11 20:36:34
425
原创 #Vue3篇:static 和 assets区别
总的来说,static 目录用于存放不会被 webpack 处理的静态资源,而 assets 目录用于存放可能会被 webpack 处理的静态资源。在实际开发中,可以根据需要选择使用哪个目录来存放静态资源。可以通过相对路径访问这些资源,但在某些情况下,可能需要使用 webpack 的一些特殊配置来处理这些资源。这是一个放置可能会被 webpack 处理的静态资源的目录。这是一个放置不会被 webpack 处理的静态资源的目录。可以存放字体文件、图片等。可以存放字体文件、图片等。
2024-12-11 20:36:13
286
原创 #Js篇:相对路径和绝对路径的解释
便于代码移植,因为路径是相对于当前文件的,不会因为文件位置的变化而失效。适用于需要固定引用的情况,例如网站的 logo 或导航栏等全局资源。在大型项目中,使用绝对路径可以避免因文件结构调整而导致的路径错误。定义:相对于当前文件位置的路径。定义:从根目录开始的完整路径。路径始终以斜杠 / 开始。更灵活,适合模块化开发。取决于当前文件的位置。不依赖于当前工作目录。不以斜杠 / 开始。
2024-12-11 20:35:47
280
原创 #HarmonyOS篇: 学习资料
https://developer.huawei.com/consumer/cn/training/https://developer.huawei.com/consumer/cn/doc/start/training-introduction-0000001181392655https://developer.huawei.com/consumer/cn/doc/start/guidebook-0000001056335559https://developer.huawei.com/consumer/cn
2024-12-10 21:27:15
696
原创 #Vue3篇:组合式函数hooks
如果参数是 ref,它会返回 ref 的值;如果参数是函数,它会调用函数并返回其返回值。否则,它会原样返回参数。类似于 unref,但它更加通用,不仅可以解包 ref,还可以处理其他类型的响应式对象(如 computed)。对于 reactive 对象,它不会递归解包内部的 ref。尝试解包一个 ref。如果传入的是一个 ref,它将返回 ref.value;如果是普通值或 reactive 对象,则直接返回该值本身。从组合式函数返回一个响应式对象会导致在对象解构过程中丢失与组合式函数内状态的响应性连接。
2024-12-10 21:06:36
484
原创 #Vue3篇:defineOptions&vueUse
从 3.3 开始你可以直接通过defineOptions 来设置组件名或 inheritAttrs 属性。
2024-12-10 21:05:25
1104
原创 #Js篇: 链式判断运算符 ?.和Null判断运算符 ??和逻辑赋值运算符||= &&= ??=
上面代码中,如果response.settings是null或undefined,或者response.settings.animationDuration是null或undefined,就会返回默认值300。上面的三行代码都通过||运算符指定默认值,但是这样写是错的。开发者的原意是,只要属性的值为null或undefined,默认值就会生效,但是属性的值如果为空字符串或false或0,默认值也会生效。上面例子中,字符串的match()方法,如果没有发现匹配会返回null,如果发现匹配会返回一个数组,?
2024-11-29 18:30:00
562
原创 #Ts篇:类型断言!&any unkown void never & 泛型
上面示例中,最后一行的foo as T表示告诉编译器,变量foo的类型断言为T,所以这一行不再需要类型推断了,编译器直接把foo的类型当作T,就不会报错了。变量x的类型是never,就不可能赋给它任何值,否则都会报错。unknown是any的严格版 不允许再赋值给别的变量。函数名getFirst后面的尖括号就是类型参数。void 函数没有返回值,如果有返回值就报错。any 关闭类型校验 变量赋值污染问题。函数调用时,需要提供类型参数。
2024-11-29 15:35:54
223
原创 #Vue3篇:v-for&组合式函数&自定义指令
指令钩子指令钩子 https://cn.vuejs.org/guide/reusability/custom-directives.html// 在绑定元素的 attribute 前// 或事件监听器应用前调用// 下面会介绍各个参数的细节},// 在元素被插入到 DOM 前调用// 在绑定元素的父组件// 及他自己的所有子节点都挂载完成后调用// 绑定元素的父组件更新前调用// 在绑定元素的父组件// 及他自己的所有子节点都更新后调用// 绑定元素的父组件卸载前调用。
2024-11-22 21:45:00
853
原创 #Vue3篇: vue3梳理 :&ref自动解包&key使用
在这种情况下我们可以在一个 元素上使用 v-if,这只是一个不可见的包装器元素,最后渲染的结果并不会包含这个 元素。有限的值类型:它只能用于对象类型 (对象、数组和如 Map、Set 这样的集合类型)。因为两个模板使用了相同的元素, 不会被替换掉——仅仅是替换了它的 placeholder。幸运的是,我们可以通过使用单文件组件 (SFC) 来避免这种情况。如果 attribute 的名称与绑定的 JavaScript 值的名称相同,那么可以进一步简化语法,省略 attribute 值。
2024-11-21 21:45:00
799
原创 #Uniapp篇:变量&v-if 和 v-show 区别&.sync 修饰符&宽屏适配指南&Pinia内置了
相比之下,v-show 就简单得多,不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换,来控制元素的显示和隐藏。v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做,直到条件第一次变为真时,才会开始渲染条件块。v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级。v-if 有更高的切换开销,如果在运行时条件很少改变,则使用 v-if 较好。
2024-11-20 21:00:00
774
原创 #其它:面试题
第一面试官提问如下:4、css塌陷问题如何解决5、js闭包6、没有变量的情况下,如何判断是否是空对象7、js的事件队列9、数组的值修改不生效是为什么呢10、开发过程中同一级别组件如何通讯11、vue3对比vue2使用过程中的改动以及优缺点是什么12、出生年份第二面试官提问如下:5、项目开发中有什么印象深刻的事情吗6、学历时间9、对接开发联调的方法10、对未来的规划青青候选人面试情况三位面试官:2、css坍塌,js闭包是如何理解的,为什么要用闭包,闭包有什么好处?3、
2024-11-17 22:59:39
422
原创 #UniApp篇:uni面试题
uniapp工作原理—将vue.js的模版语法转换为各个平台所支持的原生组件,在通过引擎的渲染器将其渲染到各个平台上。tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。如何监听页面滚动—onPageScroll—页面在垂直方向已滚动的距离(单位px)Uni-app在非h5端上运行为什么要在架构上分为逻辑层和视图层。Vue uni-app 小程序页面传递参数方式和区别。uniapp和vue和小程序之间的关系。说几个uniapp常用的组件。
2024-11-17 22:56:22
675
原创 #HarmonyOS篇:状态管理
AppStorage是应用程序中的一个特殊的单例LocalStorage对象,是应用级的数据库,和进程绑定,通过@StorageProp和@StorageLink装饰器可以和组件联动。@Link:@Link装饰的变量可以和父组件建立双向同步关系,子组件中@Link装饰变量的修改会同步给父组件中建立双向数据绑定的数据源,父组件的更新也会同步给@Link装饰的变量。@Prop:@Prop装饰的变量可以和父组件建立单向同步关系,@Prop装饰的变量是可变的,但修改不会同步回父组件。
2024-11-17 22:55:32
549
原创 #Js篇: 字符串梳理
模板字符串(template string)是增强版的字符串,用反引号(`)标识。模板字符串中嵌入变量,需要将变量名写在${}之中。toUpperCase()转成大写。
2024-11-17 22:54:50
149
原创 #Js篇: window.location 和 new URL区别
window.location 是浏览器提供的一个对象,用于获取当前页面的 URL 信息,并且可以用来导航到新的 URL。window.location: 提供了 origin 属性,但没有 origin 属性的 new URL 对象可以通过 url.origin 访问。new URL: 用于解析任意的 URL 字符串,提供更灵活的 URL 处理能力。protocol: URL 的协议部分(例如 http: 或 https:)。protocol: URL 的协议部分(例如 http: 或 https:)。
2024-11-17 22:54:00
793
原创 #Js篇:JSON.stringify 和 JSON.parse用法和传参
JSON.stringify 用于将 JavaScript 对象或数组转换为 JSON 字符串。JSON.parse 用于将 JSON 字符串解析为 JavaScript 对象或数组。这两个方法都支持额外的参数来定制其行为,如 replacer 和 reviver 函数,以及 space 参数。
2024-11-17 22:53:38
263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人