当前位置: 首页 > article >正文

其他自定义代码片段

1.        滚动条自动滚到最底部

如何让滚动条自动滚到最底部-php教程-PHP中文网

2.        vue3使用i18n国际化

https://www.cnblogs.com/huihuihero/p/16717484.html

Vue3 如何使用多语言 vue-i18n - 简书

vue3中如何使用vue-i18n实现多语言切换 - 芦苇派

vue3中使用vue-i18n(ts中使用$t, vue3不用this)_vue3使用i18n_一只爱吃糖的小羊的博客-CSDN博客

3.        ant design vue 再次确认密码

validatePassTwo(rule, value, callback) {

const that = this;

if (

that.newForm.getFieldValue("password") ===

that.newForm.getFieldValue("oldPassword")

) {

this.newForm.setFields({

'password':{

'errors':null,

'value':that.newForm.getFieldValue("password")

},

'oldPassword':{

'errors':null,

'value':that.newForm.getFieldValue("oldPassword")

}

})

callback();

} else {

if (rule.field === "oldPassword") {

if (value !== that.newForm.getFieldValue("password"))

callback(new Error("原密码与新密码不一致"));

} else if (rule.field === "password") {

if (value !== that.newForm.getFieldValue("oldPassword"))

callback(new Error("原密码与新密码不一致"));

}

}

},

其中

this.newForm.setFields({

'password':{

'errors':null,

'value':that.newForm.getFieldValue("password")

},

'oldPassword':{

'errors':null,

'value':that.newForm.getFieldValue("oldPassword")

}

})

可以设置field的值 ,把errors改为null就可以手动清除验证报错的信息

4.        vite项目获取静态资源的公共方法

vue3+vite assets动态引入图片的几种方式,解决打包后图片路径错误不显示的问题_vue3引入图片_Young丶的博客-CSDN博客

// 获取静态资源

export const getAssets = (url:String) => {

return new URL(`../assets/${url}`,import.meta.url).href

// 必须是相对路径 否则无法显示

}

5.        监听页面是否发生修改

可以用 beforeRouteLeave 和 updated 来判断。export default {

name: 'supplier',

components:{cmtWrap,cmtContent},

props: [],

beforeRouteLeave (to, from, next) {//离开当前页if(this.updateCount > 1){ //更新次数大于1 说明用户修改过当前页数据 因为获取详情时会更新一次if(from.path.includes('nowPath')){

this.$confirm('即将离开当前页,请确定是否保存当前数据?', '离开当前页', {

confirmButtonText: '保存',

cancelButtonText: '不保存',

type: 'warning'

}).then(() => {

//...todo 这里调接口 保存数据

next()

}).catch(() => {next()});

}else{next()}

}else{

next()

}

},

updated:function () {

this.updateCount = this.updateCount + 1

},

data() {

return {

updateCount:0,//判断用户是否更新当前数据 }

},

computed:{},

watch:{},

mounted:function () {

    this.getInitData()

  },

methods: {

    getInitData:function(){

    //...todo 页面进来,先获取默认数据

    }

  },

}

6.        动态缓存组件切换时不能更新的解决办法

1. 第一种方法

在keep-alive中,有两个生命周期钩子函数,分别是activated()和deactivated()。我们可以使用activated(),在组件激活的时候会被调用,每次进入页面的时候,都会执行,在这个里面进行数据的请求,用来替代mounted。所以,只要将mounted替换为activated就可以解决问题了。

2. 第二种方法

我们可以在keep-alive中,加上一个属性exclude,属性的值就是组件的name,因为exclude是可以取消被keep-alive缓存的组件。代码示例如下:

<keep-alive exclude="detail">

<router-view/>

</keep-alive>

7.         父盒子旋转子盒子不旋转的实现方法

中心思想:双重旋转互相抵消(即父盒子如果香油旋转,那么子盒子只需要向左旋转,这样子盒子就不会随着父盒子一起旋转)

旋转动画:

@keyframes rotateRight {

0% {

transform: rotateZ(0);

}

100% {

transform: rotateZ(360deg);

}

}

@keyframes rotateLeft {

0% {

transform: rotateZ(0);

}

100% {

transform: rotateZ(-360deg);

}

}

.basic-left-pepole-count {

animation: rotateRight 3s linear infinite;

div {

animation: rotateLeft 3s linear infinite;

}

}

参考内容:css实现只旋转边框,内含文字不转动_css旋转内容不旋转_白抹灰的博客-CSDN博客

8.        后端返回文件流前端展示

前端实现在线预览pdf、word、xls、ppt等文件_PrinciplesMan的博客-CSDN博客_前端在线预览pdf

https://blog.csdn.net/weixin_48400717/article/details/126382218

前端处理blob文件流_wzp6010625的博客-CSDN博客

URL.createObjectURL()的使用方法_RawMarin的博客-CSDN博客

前端预览pdf文件流_这个柚子有点酸~的博客-CSDN博客

核心是转成blob对象,生成url去访问

9.        base64转blob对象

base64ToBlob (code) { code = code.replace(/[\n\r]/g, ''); var raw = window.atob(code); var rawLength = raw.length; var uint8Array = new Uint8Array(rawLength); for (let i = 0; i < rawLength; i++) { uint8Array[i] = raw.charCodeAt(i); } return new Blob([uint8Array], {type: 'application/pdf;charset-UTF-8'}) }, viewPdf (content) { if (!content) { this.$message.error('暂无内容') return } const blob = this.base64ToBlob(content) this.fileURL = URL.createObjectURL(blob); }


http://www.kler.cn/news/16806.html

相关文章:

  • 设计模式--装饰者模式
  • JSP+Struct+MySql基于BBS管理系统设计与实现(源代码+论文+中英资料+开题报告+答辩PPT)
  • Java 怎样实现代理模式,有什么优缺点
  • ospf扩展配置—认证、沉默接口、加快收敛、缺省路由
  • 2023-04-23 学习记录--C/C++-邂逅C/C++(中)
  • hive 清空分区表 多姿势对比
  • 微服务知识2
  • C语言文件操作【基础知识 + 顺序读写 + 文件版通讯录】
  • 【Java笔试强训 17】
  • maven install的时候报Unable to find main class
  • 财报解读:照明行业景气上行,欧普照明已步入增长“快车道”
  • Noah-MP陆面过程模型建模方法与站点、区域模拟实践技术
  • linux命令之tar详解
  • 快速了解车联网V2X通信
  • 接踵而至,昆仑万维天工大语言模型发布
  • Linux必会100个命令(六十)curl
  • 小满nestjs(第二十八章 nestjs 事务)
  • 1.软件测试
  • 常见元件、封装、尺寸、表面处理等
  • C语言中的三种语句
  • fastai2 实现SSD
  • 1699_simulink代码生成配置初级方案
  • 【Java】内部类Object类
  • SpringBoot整合Redis实现点赞、收藏功能
  • @TransactionalEventListener的使用和实现原理
  • 【五一创作】【Simulink】采用延时补偿的三相并网逆变器FCS-MPC
  • 如何在CentOS上详细安装PageOffice进行企业文档管理和协作
  • Java 基础入门篇(五)—— 面向对象编程
  • 05_从0运行,重定位,初始化,中断再到定时器
  • kafka单机配置