自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_41097495的博客

前端学习

  • 博客(51)
  • 收藏
  • 关注

原创 Flutter路由管理

1. 普通路由普通路由传递参数很简单,就是自定义的Widget其实就是一个类,定义Widget时,构造函数接收参数,然后跳转到这个Widget时,和普通的类一样传递参数就好了。1.1 简单实例// 自定义一个Widgetimport 'package:flutter/material.dart';class Home extends StatefulWidget { // 这里的data将有外部传入 这是普通路由传值的方式 String data; Home(this.data)

2020-06-27 22:15:18 1245

原创 Flutter持久化存储之使用和封装shared_preferences

前言对NSUserDefaults(在iOS上)和SharedPreferences(在Android上)进行了包装,用于持久化的存储一些较为简单的数据,以键值对的方式存储(key-value) ,不建议存储重要的信息。 复杂数据进行数据库持久化存储请看 Flutter持久化存储之sqflite1. 准备工作1.1 添加依赖在pubspec.yaml文件下添加dependencies: shared_preferences: ^0.5.7+31.2 安装如果保存了有自动执行则最好,如果

2020-06-19 00:40:04 4316

原创 解决C盘存满了(空间不足)

1. 问题尤其之前比较膨胀,觉得100多G的C盘撑得住,软件什么的安装在C盘,加上杂七杂八的一堆文件,C盘有点顶不住了,只剩10左右,因此这两天寻思整理一下C盘。2. 解决2.1

2020-06-01 00:15:35 650

原创 VScode安装TypeScript后JS代码没有语义检查(不报错)

1.问题VScode安装了TypeScript之后,若没有jsconfig.json或tsconfig.json文件,js文件的代码没有语法检查。即代码有问题也不报错。如下图:1.变量不存在也不报错2.方法不存在也不报错…基本语法都没有检查了2.解决打开VSCode的设置,搜索checkjs.默认情况下,TS会禁用JS文件的语义检查,因此代码出错也没有提示。1. 解决方法一:修改配置,即将下面图片上的选项勾选上。2. 解决方法二:等价于方法一 但是是在setting.jso

2020-05-31 17:21:54 8011 4

原创 Flutter中编解码Convert基本使用

1. 导入import 'dart:convert'; import 'dart:typed_data'; // Uint8List需要导入这个2. Ascii// 创建一个 AsciiCodec 对象 AsciiCodec ac=new AsciiCodec();// 编码 将ascii字符串转换成UintList类型 无法编码中文 会报错Uint8List list=ac.encode("Hello Dart");// 等价于// Uint8List list=AsciiE

2020-05-30 16:25:29 5586

原创 Flutter中目录(Directory)和文件(File)常用操作

1. 目录(Directory)1.1 导入import 'dart:io'; // Directory所在的包import 'dart:convert'; // 1.2 创建实例// 根据路径字符串创建目录对象Directory dir=new Directory("assets\\files");// 根据Uri对象创建目录对象// Directory dir=new Directory.fromUri(Uri(path: "assets"));// 根据Uint8L

2020-05-30 16:09:29 17044

原创 Flutter插件之path_provider

1. 准备工作1.1 添加依赖在pubspec.yaml文件下添加dependencies: path_provider: ^1.6.91.2 安装如果保存了有自动执行则最好,如果没有那么在终端运行flutter packages get命令1.3 导入import 'package:path_provider/path_provider.dart';2. 方法2.1 获取临时文件路径(IOS和安卓通用)// 获取不会备份并且随时会被删除的临时目录(IOS和安卓通用)get

2020-05-29 23:18:41 8135 1

原创 Flutter持久化存储之sqflite操作数据库详细使用

1. 准备工作1.1 添加依赖:在pubspec.yaml文件下添加path_provider是用来处理路径相关的操作dependencies: sqflite: ^1.3.0+2 path_provider: ^1.6.91.2 安装如果保存了有自动执行则最好,如果没有那么在终端运行flutter packages get命令1.3 导入import 'package:sqflite/sqflite.dart';1.4 注意 // SQLite支持的数据类型 不支持b

2020-05-29 17:39:58 2335

原创 Flutte实用并流行的HTTP请求库dio

Dio一. 安装二. Dio APIS1. BaseOptions 基础配置2. 请求类型的别名3. RequestOptions 请求配置4. Response 和 DioError5. Interceptors 拦截器6. 取消请求7.Proxy 代理三. 具体例子1. post2. 配合Future等待多个请求执行完毕3. 下载文件4. 设置Options中的responseType来控制响应的类型5. 上传文件6. 更改请求头一. 安装在 pubspec.yaml 文件下添加,版本可以自行

2020-05-22 17:42:47 490

原创 VScode活动代码段禁用代码提示问题(代码白底无提示)

问题使用VScode的过程中,使用代码提示补全代码后,会出现白底的现象(活动代码段)。这个如果没有内容的话不是很明显。这里以HTML文件为例:input使用了代码提示,然后出现了白底,这时代码提示失效,需要移动光标或者按Esc键,消除白底后,代码提示才恢复。解决1. 文件 -> 首选项 -> 设置 或 使用快捷键( Ctrl + ,) 进入VScode设置 2. 搜索: Snippets Prevent Quick Suggestions3. 将图片中的勾选项去除即可

2020-05-22 10:44:53 1682 1

原创 Flutter常用命令简介

1.flutter -h/–help/ help 查看帮助查看帮助信息 类似命令的使用指南 -h/--help可以作为别的命令的后缀使用 打印详细的命令使用指南 如 flutter run -h 2. flutter create 创建项目跟上项目的名称 即可创建Flutter项目3. flutter run 运行项目运行项目 --v 查看APP所有日志的输出--release/--debug/--profile/--test 分别是以release/debug/profile

2020-05-18 23:23:50 2630

原创 ES6中Set和Map使用

1. Set// 基本用法// ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成 Set 数据结构。const s = new Set();[2, 3, 5, 4, 5, 2, 2,1,2,4,1,5].forEach(x => s.add(x));console.log(s) // Set { 2, 3, 5, 4, 1 }// 将set转换成数组console.log(Array.from(s));

2020-05-09 23:29:31 212

原创 ES6中Symbol的使用

1. 基础使用1.1 Symbol概述// ES6新引入的原始数据类型,表示独一无二的值,是类似于字符串的数据类型。//通过 Symbol函数生成 可作为对象的属性名let s=Symbol();console.log(s); // Symbol()console.log(typeof s); // Symbol// Symbol不得使用new 因为Symbol不是对象 是原始类型的值// 由于不是对象,所以也不能添加属性//这个括号中的参数是描述,用于区分Symbol,

2020-05-09 22:27:18 247

原创 Cordova使用百度OCR插件实现图像识别

1. 下载aip.license文件1.1 注册登录百度智能云网址: https://login.bce.baidu.com/ 有账户直接登录 没有的话注册一个再登录登录后 左侧菜单 >点开 查看所有服务 找到其中的图像识别这个布局是不一定的 以后说不定会变 但是意思是一样的 找到图像识别即可1.2 进入图像识别 应用列表的页面1.2.1 点击创建应用1.2.2 填写...

2020-05-04 00:02:01 1136

原创 Cordova文件模块

1. 安装cordova plugin add cordova-plugin-file2.添加按钮<button id = "createFile">创建文件</button><button id = "writeFile">写入文件</button><button id = "readFile">读取文件</butto...

2020-05-02 22:36:57 264

原创 Cordova 对话框插件

1. 安装cordova plugin add cordova-plugin-dialogs2. index.html添加按钮<button id="alert">alert</button><button id="confirm">confirm</button><button id="prompt">prompt</...

2020-05-02 13:27:31 176

原创 Cordova 振动插件

1. 安装cordova plugin add cordova-plugin-vibration2.添加按钮<button id="vibration">单次振动</button><button id="sustained-vibration">多次振动</button><button id="stopVibration">停...

2020-05-01 23:58:25 248

原创 Cordova闪屏插件设置启动画面

1.安装cordova plugin add cordova-plugin-splashscreen2. 添加图片在项目下platforms\android\app\src\main\res中的drawable开头的文件夹中添加需要设置成启动图片的图片 默认cordova使用的是screen.png 可以去文件中找找 然后将自己想要的图片放进去 不同的drawable文件夹对应不同的屏幕大...

2020-04-30 19:41:16 561

原创 Cordova 设备信息插件

1.安装cordova plugin add cordova-plugin-device2. 添加按钮<button id="device">获取设备信息</button>3.document.addEventListener('deviceReady',function(){ document.getElementById('device').oncl...

2020-04-30 17:22:39 154

原创 Cordova 网络信息插件

1. 安装cordova plugin add cordova-plugin-network-information2. 添加按钮 <button id="network">获取网络信息</button>3.// Cordova加载完成document.addEventListener('deviceReady',function(){ // 按钮点击事件...

2020-04-30 16:51:13 301

原创 Cordova电池状态插件使用

1. 安装插件cordova plugin add cordova-plugin-battery-statu2. Cordova加载完成后添加事件// Cordova加载完成 事件都要写在这个的回调函数中比较保险document.addEventListener('deviceReady',function(){ // 电池状态发生改变的时候触发 window.addEvent...

2020-04-30 15:05:46 347

原创 Cordova Storage使用

1.设置html按钮标签<button id="set">设置storage</button><button id='get'>获取storage</button><button id='remove'>删除单个storage</button><button id='getByKey'>索引获取storag...

2020-04-30 14:50:22 291

原创 Cordova相机插件使用

1.安装插件cordova plugin add cordova-plugin-camera2. 在index.html中id为app的标签中<button id="photograph">拍照</button><button id="getPhotograph">获取照片</button>3. navigator.camera.get...

2020-04-30 14:17:01 453

原创 Cordova事件

1.deviceReady Cordova加载完成时触发注意点:后续的事件最好添加这个监听器里面 因为如果cordova都没有加载好 那就无法监听别的事件了document.addEventListener('deviceReady',function(){ console.log("Cordova加载完成")})2. pause 应用程序进入后台时触发document.a...

2020-04-30 00:23:25 174

原创 ES6中Async的使用

1.async基本用法async会返回一个promise对象// 运行async函数,每次执行完一个await后的语句 就会先撤出去执行外部的代码。async function asyncFunc(){ await console.log('第1行代码'); await console.log("第2行代码"); await console.log("第3行代码");...

2020-04-29 17:29:02 333

原创 ES6中类的基本语法

1.了解类的使用// 1.定义类class Person{ // 构造函数 初始化实例 constructor(name,age){ this.name=name; this.age=age; } // 重写toString()方法 toString(){ return `姓名:${this.name}—— 年龄:${this.age}` }}// 创建一个Per...

2020-04-29 16:25:51 254

原创 Node中buffer模块使用

1.注意点下面的代码是一个大标题一个文件,所以变量名存在重复,单纯的看不影响,如果想拷贝出去 请分开拷贝。2.创建buffer对象// 创建Buffer对象的3种方法//1. Buffer.alloc(length,填充物,编码)const buf1=Buffer.alloc(10,1);console.log(buf1); // <Buffer 01 01 01 01 01 0...

2020-04-29 14:20:21 253

原创 Node使用WebSocket实现简单的点对点聊天

1.点对点发送的原理点对点发送的原理就是在客户端连接服务器的时候带上用户名,然后绑定到客户端对象ws上,然后通过遍历连接服务器的所有客户端wss.clients,就可以通过之前绑定的用户名对不同的用户进行区分。2.创建服务器端需要安装ws模块npm i ws// 导入ws模块const WebSocket=require('ws');let wss=new WebSocket.Se...

2020-04-29 11:25:40 872

原创 Node路径模块path的基本使用

1. 导入let path=require('path');2. path.normalize(path)// normalize的作用:规范化路径let p='./index.txt';//1.将解析路径中的.和.. 返回解析后的标准字符串 ./会被省略//2.将多个斜杠转换为一个斜杠//3.将windows下的反斜杠转换成正斜杠//4.如果路径以斜杠结尾,那么转换后完整路径...

2020-04-28 14:38:57 521

原创 Node文件系统 其他文件相关操作

1.fs.rename(oldPath, newPath, callback)如果旧文件路径(oldPath)和新文件路径(newPath)在同一个文件夹下 如 ‘./a/b’和’./a/c’ 则是修改文件名或目录名fs.rename('./a/b','./a/c',function(error){ if(error){console.log("发生错误");} else{ conso...

2020-04-28 14:10:39 159

原创 Node文件系统 dir目录相关操作

1.导入let fs=require('fs');2. mkdir(path,[,options],callback) 创建目录结构path为嵌套关系 如: “./a/b” 当a不存在的时候 默认是会报错 而不是创建 如果有需要 可以将options设置为{recursive:true}, 这时 a不存在 系统会自动创建afs.mkdir("./a/b",{recursive:t...

2020-04-28 13:34:04 497

原创 Node文件系统 WriteStream写入文件

1.导入let fs=require('fs');2.创建WriteStream对象写入方式可参考: 文件读写let fws=fs.createWriteStream('./N4_操作文件系统/index.txt',{ flags:"a+", // 写入方式 encoding:"utf8", // 指定编码集 autoClos...

2020-04-28 11:08:30 1507

原创 Node文件系统 ReadStream读取文件

1.导入let fs=require('fs');2. 创建ReadStream对象读取方式可参考: 文件读写let frs=fs.createReadStream(path,{ flags:'r+', // 读取方式 encoding:"utf8", // 指定编码集 autoClose:true, // 是否自动关闭 start:0, ...

2020-04-28 10:38:49 881

原创 Node文件系统 stat查看信息、access测试权限和existsSync

1.fs.stat(path[, options], callback)fs.stat(path,function(error,stats){ console.log(stats); // 打印stats对象 查看其属性 console.log(stats.isDirectory()); // 路径所指是否是文件夹 console.log(stats.i...

2020-04-28 10:13:51 1150

原创 Node文件系统 文件描述符方式读写文件

fd - 文件描述符每个打开的文件都分配了一个称为文件描述符的简单的数字标识符,在fs中可以根据文件描述符fd来操作文件。和普通操作文件相比更加复杂 操作的是buffer 但是可以控制读写的位置及长度1.在同级目录下创建一个index.txt文件 内容随意 十来个字就好2. 导入fs并创建bufferlet fs=require('fs');let buffer=Buffer.al...

2020-04-28 00:40:26 397

原创 Node文件系统 fs异步与同步——文件读写

同步与异步在这先对同步和异步进行区别 同步:前面的代码先执行 后面的代码需要等待前面的代码执行完毕才会执行异步:代码的执行不分先后 也就是说前面的代码执行 不会导致后面的代码阻塞 所以异步代码的执行结果的顺序是不一定的在fs中对于文件的操作有异步和同步两种方式,异步中又分为普通异步和Promise异步两种 具体看代码一. 读取文件导入模块let fs=require('fs')...

2020-04-27 23:53:23 3806

原创 koa获取get请求、querystring以及state使用

1. 获取get请求相比于post请求 get请求就比较简单一些了router.get('/getData',async (ctx,next)=>{ console.log(ctx.request.url); // "/?name=xxx&age=111" 字符串 console.log(ctx.request.query...

2020-04-27 00:00:15 1033

原创 koa-bodyparser获取post参数

1.不使用koa-bodyparser获取post参数router.post('/postData',async (ctx,next)=>{ let postData=""; // 用于存储post的数据 ctx.req.on('data',function(data){ postData+=data; ...

2020-04-26 23:24:54 689

原创 koa-router基本使用

1. 安装npm i koa-router2. 导入const router=require('koa-router')({ prefix:"/user", // 路由前缀});3. 不同请求请求方式有get、post、put、del、all,主要使用get和post,all接收所有请求类型// 修改为其他请求类型,只需要将get改成需要的类型即可router.get(...

2020-04-26 18:09:06 1573

原创 koa-static基本使用

1. 安装koa-staticnpm i koa-static2. 导入const serve = require('koa-static'); // 导入koa-static包const Koa = require('koa'); // 导入koa包const app = new Koa(); // 创建koa实例对象3. 使用app.use(stat...

2020-04-26 17:09:46 5710

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除