鸿蒙
最新文章一次开发多端部署
一次开发多端部署关键问题为了实现“一多”的目标,需要解决如下三个基础问题:
页面如何适配
不同设备间的屏幕尺寸、色彩风格等存在差异,页面如何适配。
功能如何兼容
不同设备的系统能力有差异,如智能穿戴设备是否具备定位能力、智慧屏是否具备摄像头等,功能如何兼容。
工程如何组织
如何实现一套代码同时能部署到多种不同设备上,代码工程如何组织。
关键问题解决思路针对“一多”提出的三个基础问题,可以从界面级、功能级、工程级三个维度给出相关问题的解决思路:
界面级一多页面级一多需要考虑不同设备间的屏幕尺寸、色彩风格等存在差异,页面如何适配。可以从布局能力、资源使用、交互归一几个方面去考虑。
布局能力布局可以分为自适应布局和响应式布局,二者的介绍如下表所示:
名称
简介
自适应布局
外部容器大小发生变化时,元素根据相对关系自动适应外部容器变化布局能力。自适应布局能力有7种:拉伸、均分、占比、缩放、延伸、隐藏、折行。
响应式布局
外部容器大小发生变化时,元素可以根据断点、栅格、媒体查询来适应外部容器变化布局能力。响应式布局能力有3种:断点、媒体查询、栅格布局。
自适应布局 ...
接口文档
网易云音乐接口文档
NeteaseCloudMusicApi网易云音乐 NodeJS 版 API
灵感来自disoul/electron-cloud-music
darknessomi/musicbox
sqaiyan/netmusic-node
工作原理跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API
功能特性
登录
刷新登录
发送验证码
校验验证码
注册(修改密码)
获取用户信息 , 歌单,收藏,mv, dj 数量
获取用户歌单
获取用户电台
获取用户关注列表
获取用户粉丝列表
获取用户动态
获取用户播放记录
获取精品歌单
获取歌单详情
搜索
搜索建议
获取歌词
歌曲评论
收藏单曲到歌单
专辑评论
歌单评论
mv 评论
电台节目评论
banner
获取歌曲详情
获取专辑内容
获取歌手单曲
获取歌手 mv
获取歌手专辑
获取歌手描述
获取相似歌手
获取相似歌单
相似 mv
获取相似音乐
获取最近 5 个听了这首歌的用户
获取每日推荐歌单
获取每日推荐歌曲
私人 FM
签到
喜欢音乐
垃圾桶
歌单 ( 网友精选碟 )
新碟上架
热门歌手
最新 mv
推荐 mv
...
鸿蒙
鸿蒙私仓服务器部署教程
鸿蒙私仓服务器部署教程
注意:
项目全程指令使用新创建账号来使用,因为root权限太大私仓不支持
每次修改config.yaml参数时要更新项目配置文件使用,install指令进行更新
一、环境要求由于鸿蒙私仓是基于nodejs进行开发的。
要求node.js 16.x 及以上版本
要求使用安装pm2守护进程管理器
安装可以在 宝塔面板=> 软件商店 =>nodejs版本管理器
nodejs版本管理器自带node版本下载控制和自带pm2
安装下载ohpm-repo私仓压缩包私仓压缩包下载地址
上传文件到www=>wwwroot=>ohpm-repo(创建文件夹)中,进行解压。
二、全局环境变量配置
注意:服务器部署中不能使用root权限用户进行启动项目,否则启动失败
创建新用户sudo useradd [名称] // 创建新用户(root)
passwd [名称] // 给新用户设置密码(root)
su [名称] // 切换用户
环境变量ohpm-repo 指令全局配置在服务器 根目录=>etc=&g ...
部署
兰空图床部署教程
兰空图床部署教程一、 环境要求兰空图床要求PHP版本大于等于PHP >= 8.0.2,而数据库要求为Mysql 5.7+/PostgreSQL 9.6+/SQLite 3.8.8+/SQL Server 2017+中的一种。
建议的版本是PHP 8.1 + MySQL 5.7,如果使用的是PHP 8.2,在安装的时候会报错“服务器错误”:
在安装前,先到官网下载源码文件放到网站上,下载地址:lsky releases。
二、安装PHP扩展图床依赖fileinfo/imagemagick/exif三个扩展,在php的控制面板中可以一键安装:
三、允许使用不安全的函数部分函数因为安全问题在安装时默认被禁止使用,但图床要使用,需要在禁用列表中删除。
用到的函数列表:readlink/symlink/putenv/getenv/exec/shell_exec/chmod/chown。
在PHP的配置文件中移除对这些函数的删除即可:
四、关闭跨站攻击在“网 ...
前端
nodeJS学习
nodejs笔记1 - nodejs介绍概述
nodejs 并不是JavaScript应用,也不是编程语言,因为编程语言使用的JavaScript,Nodejs是 JavaScript的运行时。
Nodejs是构建在V8引擎之上的,V8引擎是由C/C++编写的,因此我们的JavaSCript代码需要由C/C++转化后再执行。
NodeJs 使用异步 I/O 和事件驱动的设计理念,可以高效地处理大量并发请求,提供了非阻塞式 I/O 接口和事件循环机制,使得开发人员可以编写高性能、可扩展的应用程序,异步I/O最终都是由libuv 事件循环库去实现的。
NodeJs 使用npm 作为包管理工具类似于python的pip,或者是java的Maven,目前npm拥有上百万个模块。 www.npmjs.com/
nodejs适合干一些IO密集型应用,不适合CPU密集型应用,nodejsIO依靠libuv有很强的处理能力,而CPU因为nodejs单线程原因,容易造成CPU占用率高,如果非要做CPU密集型应用,可以使用C++插件编写 或者nodejs提 ...
前端开发
router笔记(Vue3)
Router学习01 - 入门1. router路由应为vue是单页应用不会有那么多html 让我们跳转 所有要使用路由做页面的跳转
Vue 路由允许我们通过不同的 URL 访问不同的内容。通过 Vue 可以实现多视图的单页Web应用
2. 安装npm init vue@latest// 或者npm init vite@latest
注意:Vue3使用的是router4版,Vue2使用的是router3版
npm install vue-router // 默认最新版,是第四版
在src目录创建router文件夹,文件夹中创建index.ts文件
import {createRouter,createWebHashHistory,RouteRecordRaw} from "vue-router"// RouteRecordRaw为定义路由的声明接口// vue2 mode history vue3 createWebHistory// vue2 mode hash vue3 createWebHashHistory// vue2 ...
前端开发
Pinia笔记
pinia学习01 - pinia介绍
Pinia.js 有如下特点:
完整的 ts 的支持;
足够轻量,压缩后的体积只有1kb左右;
去除 mutations,只有 state,getters,actions;
actions 支持同步和异步;
代码扁平化没有模块嵌套,只有 store 的概念,store 之间可以自由使用,每一个store都是独立的
无需手动添加 store,store 一旦创建便会自动添加;
支持Vue3 和 Vue2
起步安装
npm install pinia
引入注册Vue3
import { createApp } from 'vue'import App from './App.vue'import {createPinia} from 'pinia' const store = createPinia()let app = createApp(App) app.use(store) app.mount('#app' ...
前端开发
ts学习
ts学习基本篇(类型)01 - ts基本类型
类型
例子
描述
number
1, -33, 2.5
任意数字
string
‘hi’, “hi”,
任意字符串
boolean
true、false
布尔值true或false
字面量
其本身
限制变量的值就是该字面量的值
any
*
任意类型
unknown
*
类型安全的any
void
空值(undefined)
没有值(或undefined)
never
没有值
不能是任何值
object
{name:’孙悟空’}
任意的JS对象
array
[1,2,3]
任意JS数组
tuple
[4,5]
元素,TS新增类型,固定长度数组
enum
enum{A, B}
枚举,TS中新增类型
number类型
let decimal:number = 6; // 十进制let hex:number = 0xf00d // 十六进制let binary:number = 0b1010 // 二进制let octal:number = 0o744 // 八进制let big:n ...
前端开发
前端网络编程
网络编程01 - OSI七层模型
02 - TCP - 三次握手
seq,序列号随机生产的
ack确认号ack = seq + 1
ACK 确认序列号有效
SYN 发起新连接
FIN完成
首先客户端会发送一个段这个段就是$报文,想跟服务端进行连接,并且会携带一个序列号,下次发送的数据序列号还会进行+1。
服务端收到了SYN+seq字段之后,服务端也会生成一个对应服务端seq序列号,这时候就会携带ACK确认号,表示之前的SYN收到了,还会有一个小写的ack把客户端的seq+1
客户端收到服务端的响应之后会发送一个ACK确定序列号有效,并且还会发送seq注意这里的seq会通过算法计算出来是否跟服务端的ack值相等,然后会发送一个新的ack这里的ack是服务端的seq值+1,确保一切正常。
03 - TCP - 四次挥手
断开连接服务端和客户端都可以主动发起我们拿客户端举例,客户端进行断开操作先发送却IN包生成客户端的seq序列号随后进入wait1状态,这是第一次挥手。
服务端收到FN包表示自己进入了关闭等待状态,然后向客户端使用ack验证,验证成功打上ACK标记,随 ...
前端开发
vue2
Vue技术栈(全家桶)第 1 章:Vue核心1. 1 .Vue简介1. 1. 1 .官网1. 英文官网:https://vuejs.org/2. 中文官网:https://cn.vuejs.org/
1. 1. 2 .介绍与描述1. 动态构建用户界面的 渐进式 JavaScript框架2. 作者:尤雨溪
1. 1. 3 .Vue的特点1. 遵循 MVVM 模式2. 编码简洁,体积小,运行效率高,适合移动/PC端开发3. 它本身只关注UI,也可以引入其它第三方库开发项目1. 1. 4 .与其它JS框架的关联1. 借鉴Angular的 模板 和 数据绑定 技术2. 借鉴React的 组件化 和 虚拟DOM 技术
1. 1. 5 .Vue周边库1. vue-cli:vue脚手架2. vue-resource3. axios4. vue-router:路由5. vuex:状态管理6. element-ui:基于vue的UI组件库(PC端)......
1. 2 .初识Vue1. 3 .模板语法1. 3. 1 .效果1. 3. 2 .模板的理解html中包含了一些JS语法代码, ...