桌面应用开发
electron + Vue 项目运行的时候,一切正常。使用 electronBuilder打包后,Vue的字体资源会加载错误,解决方法如下:
//vue.config.js
pluginOptions: {
//electronBuilder
electronBuilder: {
customFileProtocol: "./"
}
},
前端开发
y周数据值过小,折线走势不明显
解决方案
yAxis: {
show: false,
type: "value",
splitNumber: 1,
// 关键代码,将y轴最小值作为底值
min:function(value){
return value.min;
}
只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面被关闭时,存储在 sessionStorage 的数据会被清除。
应注意,无论数据存储在 localStorage 还是 sessionStorage ,它们都特定于页面的协议。
另外,localStorage 中的键值对总是以字符串的形式存储。 (需要注意,和 js 对象相比,键值对总是以字符串的形式存储意味着数值类型会自动转化为字符串类型).
localstorage的存储地址(win10)C:\Users\WTCL\AppData\Local\Google\Chrome\User Data\Default\Local Storage\leveldb
localstorage和cookie在iframe下的不同表现
移动端开发
安装代码包代码内引入使用预备 canvas 画布开始播放
1、安装代码包资源包
2、代码内引入const { Parser, Player } = require("./js/svgaplayer.weapp.js");
3、预备 canvas 画布<!-- 礼物特效组件 -->
<canvas
type="2d"
wx:if="{{showGiftCanvas}}"
wx:for="{{giftListCanvas}}"
wx:for-item="item"
wx:for-index="index"
wx:key="item"
id="{{item.id}}"
class="giftCanvas"
></canvas>
4、加载资源开始使用//礼物弹幕
let that = this;
if (type == "sendgift") {
textObj._type = t ...
工具与效率
webstorm设置默认终端
1、vue21.1 安装vur-router由于最新版本暴露的变量名发生了改变,建议安装3.x版本
npm install vue-router@3
1.2 在App.vue文件下添加router-view<template>
<div id="app">
<router-view />
</div>
</template>
1.3 在src目录下创建router文件夹,并在该文件夹下创建index.jsimport Vue from "vue";
import VueRouter from "vue-router";
Vue.use(VueRouter)
const routes = [{
path: "/",
name: "Index",
component: () => import('../views/Index'),
meta: {
title: "",
content: {
...
前端开发
vue-cli-service serve其实是开了一个node服务器,请求/api/bbb的时候,会被中转到https://aaa/bbb,简单理解就是根据vue.config.js的配置将/api替换为''
1. vue.config.js 设置// vue.config.js
devServer: {
proxy: {
"/api": {
target: "https://aaa/",
secure: true,
changeOrigin: true,
pathRewrite: {
"^/api": ""
}
}
}
},
2. 页面内调用axios
.post("/api/bbb", file, ...
移动端开发
1、创建 wxs 文件// indexOf.wxs
function indexOf11(a, b) {
if (a.indexOf(b) >= 0) {
return true;
} else {
return false;
}
}
module.exports = {
indexOf11: indexOf11,
};
2、文件内使用<!-- 文件内引入 并任意设置一个别名 此处使用str -->
<wxs src="../../utils/indexOf.wxs" module="str" />
<view
wx:for="{{chatRecordList}}"
wx:for-item="item"
wx:for-index="index"
wx:key="item"
class="itemitemitem"
id="{{item.idd}}"
> ...
前端开发
JavaScript实用技巧汇总JavaScript开发中有很多实用的技巧和最佳实践。本文汇总了开发中常用的技巧,包括函数防抖节流、页面加载事件、网页打印和正则表达式等。
1. 函数防抖与节流防抖和节流是优化高频触发事件的常用技巧。
1.1 核心概念
防抖(Debounce):在指定的时间内只响应最后一次调用
节流(Throttle):在指定的时间内只响应第一次调用
1.2 防抖实现应用场景:用户在直播间内,超过一段时间没有任何操作时弹出提示框,有操作则重新计时。
// 防抖函数实现
function debounce(fn, time) {
let timeout = null; // 创建一个标记用来存放定时器的返回值
return function () {
clearTimeout(timeout); // 每当用户输入的时候把前一个 setTimeout clear 掉
timeout = setTimeout(() => {
// 然后又创建一个新的 setTimeout, 这样就能保证输入字符后的 i ...
后端开发
import cv2
import os
# 设置视频文件路径
video_path = '1.mp4'
# 设置保存帧图片的文件夹
output_folder = 'output_frames'
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 打开视频文件
cap = cv2.VideoCapture(video_path)
# 检查视频是否成功打开
if not cap.isOpened():
print("Error: Could not open video.")
exit()
frame_count = 0
while True:
# 读取一帧
ret, frame = cap.read()
# 如果读取失败(例如视频结束),则退出循环
if not ret:
break
# 生成帧图片的文件名
frame_filename = os.path.join(outp ...
移动端开发
小程序的不同页面间传值
前端开发
1、BroadcastChannelBroadcastChannel 接口代理了一个命名频道,可以让指定 origin 下的任意 browsing context 来订阅它。它允许同源的不同浏览器窗口,Tab页,frame 或者 iframe 下的不同文档之间相互通信。通过触发一个 message 事件,消息可以广播到所有监听了该频道的BroadcastChannel 对象。参考链接
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>index</title> ...