【这段时间不能出门,打算写个APP来管理学生和课程,经过几天的技术选型确定下来,整理了这份文档供学生学习和参考】
扎实的程序基础
+ 良好的编程思想
+ 掌握必需的技术
+ 熟悉适用的框架
+ 一定的图文处理能力
+ 细致的功能设计
+ 耐心的测试习惯
+ 自律的项目进度管理
+ 连续固定的时间
+ 动人的音乐
,这样你就可以愉快的开始独立APP制作了~ (^_*)
技术栈
html
+ css
+ javascript
NodeJs
+ React
+ Redux
Taro
+ Taro UI
+ DvaJS
+ TypeScript
+ Scss
Jest
+ ESLint
+ JSDoc
+ Git
wx
+ wxCloud
开发工具
vscode
+ 微信开发者工具
HTML
超文本标记语言CSS
层叠样式表JavaScript
脚本语言JSX
React中的界面描述语言TypeScript
严格JS语法的超集SASS/SCSS
预处理CSS的超集NodeJs
使用JS的跨端引擎React
前端框架Flutter
原生移动应用UI框架Taro
多端开发前端框架Taro UI
基于Taro的UI框架Ant Design
基于React的UI组件库Redux
基于Reactr 状态管理库DvaJS
基于redux的数据流框架ESLint
插件化JS代码检测工具Jest
测试框架Git
代码版本管理工具jsDoc
注释文档生成工具wx
微信小程序wxCloud
微信云开发Icon
图标制作管理平台Color
配色网Mongoose
分布式数据库MDN Web 开发技术
HTML
超文本标记语言MDN HTML 帮助
超文本标记语言(HTML,HyperText Markup Language)用于描述、定义网页内容。
CSS
层叠样式表MDN CSS 帮助
层叠样式表(CSS,Cascading Style Sheets)用于描述网页内容的外观与展示。
JavaScript
脚本语言MDN JavaScript 帮助
JavaScript 是在浏览器中运行的编程语言。它可以为你的网站或应用程序添加交互性和其他动态功能。随着 Node.js 的出现,你也可以在服务器上运行 JavaScript。
函数式编程入门教程 - 阮一峰
JS 函数式编程指南 - PDF 下载
什么是纯函数_以及为什么要用纯函数?
[翻译]JavaScript中的柯里化(Currying in JavaScript)
immutable data 详解
从引用数据,到深拷贝,再到不可变数据。这是调用的进度,也是优化的提升。
MDN function* 帮助
MDN async function 帮助
JSX
React中的界面描述语言React 官网 - JSX
JSX是一种JavaScript的语法扩展,运用于React架构中,其格式比较像是模版语言,但事实上完全是在JavaScript内部实现的。元素是构成React应用的最小单位,JSX就是用来声明React当中的元素,React使用JSX来描述用户界面。
TypeScript
严格JS语法的超集TypeScript 中文文档
TypeScript是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集,最终会被编译为JavaScript代码。TypeScript添加了可选的静态类型系统、很多尚未正式发布的ECMAScript新特性。
SASS/SCSS
预处理CSS的超集SASS 中文官网
SASS 是由buby语言编写的一款css预处理语言,它是一款强化 CSS 的辅助工具,是对 CSS 的扩展,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、继承(extend)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。
SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具有相同语义的有效的 SCSS 文件。SCSS 需要使用分号和花括号而不是换行和缩进。SCSS 对空白符号不敏感,其实就和css3语法一样,其后缀名是分别为 .scss。
NodeJs
使用JS的跨端引擎nodejs 中文网
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
Node 是一个让 JavaScript 运行在服务端的开发平台。对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。
用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
nodejs 官网
## node关于package.json
package-lock.json的作用
React
前端框架React 官网
React 起源于 Facebook 的内部项目,是一个用于构建用户界面的JavaScript库,也是Web应用程序的视图层。
Flutter
原生移动应用UI框架Flutter 官网
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
Taro
多端开发前端框架Taro官方文档
Taro 是一套遵循 React 语法规范的 多端开发 解决方案。
可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动/QQ/京东小程序、快应用、H5、React-Native 等)运行的代码。
需要 node 环境(>=8.0.0)
# 使用 npm 安装 CLI使用命令创建模板项目
$ taro init myApp微信小程序编译打包
# npm script注意:Taro
全局版本需要和项目里的版本一致
错误:
UnhandledPromiseRejectionWarning: Error: Cannot find module 'autoprefixer'
UnhandledPromiseRejectionWarning: Error: Cannot find module 'webpack-sources'
解决:安装以上缺少模块即可。
异步编程
Taro 异步编程环境配置
$ npm i babel-plugin-transform-runtime -D《 Taro 框架:创建微信小程序 》
Taro 1.x 版本安装 @tarojs/async-await(2.0以上不需要):
$ npm i @tarojs/async-await --save可以改写成:
async componentWillMount() {使用 improt '@/xxx' 路径
在 /config/index.js
加上配置:
Taro: alias 配置目录别名
const path = require('path')为了让 TypeScript
正确检查,需要在 tsconfig.json
加上下面配置:
打包文件过大调试方案
打包文件过大调试方案 webpack-bundle-analyzer
Taro UI
基于Taro的UI框架Taro UI 官网
安装好 Taro
,创建项目后,在项目根目录安装 taro-ui
:
Ant Design
基于React的UI组件库Ant Design React
antd 是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。
Redux
基于Reactr 状态管理库Redux 中文文档
Rematch:是没有boilerplate的Redux最佳实践
DvaJS
基于redux的数据流框架DvaJS官网
dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。
dva
通过model
的概念把一个领域的模型管理起来:
state
的 reducers。
effects
。subscriptions
。Model 对象的属性
namespace
: 当前 Model
的名称。整个应用的 State
,由多个小的 Model
的 State
以 namespace
为 key
合成state
: 该 Model
当前的状态。数据保存在这里,直接决定了视图层的输出reducers
: Action
处理器,处理同步动作,用来算出最新的 Stateeffects
:Action
处理器,处理异步动作Taro + Dva 参考:
Taro+dva+Typescript 搭建微信小程序架构
taro+dva小程序 -- 搭建配件过程
taro + taro-ui + dva
ESLint
插件化JS代码检测工具ESLint 官网
ESLint是一个插件化的javascript代码检测工具。
VScode下搭配ESLint、typescript-eslint的代码检查配方
vscode 自带的代码检查不方便,关闭。直接使用eslint,在settings.json
中配置:
需要执行命令创建 .eslintrc.js
文件
创建后,编写此文件规则:
module.exports = {参考帮助:
typescript-eslint上手
VScode下搭配ESLint、typescript-eslint的代码检查配方
Jest
测试框架jest 中文官网
2019年最流行的五大JavaScript 自动化测试框架
Git
代码版本管理工具Git 官网
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
github 官网
Git 菜鸟教程
jsDoc
注释文档生成工具从注释管理生成开发文档
jsDoc 中文文档
wx
微信小程序微信小程序官方文档
微信开发者工具下载
wxCloud
微信云开发云开发文档
当使用现有项目导入后,需要创建{cloudfunctions
目录,并在project.config.json
中指定云函数目录:
然后,在微信开发者工具中可以右键 cloudfunctions
目录进行同步或创建云函数。
云数据库自动备份
云数据库自动备份示例代码
注意:上面微信社区提供的示例代码中有BUG,需要改造,方案是可行的。
Icon
图标制作管理平台iconfont
easyicon
Color
配色网配色工具
色彩搭配进阶理论
开发者手册 - 云+社区 - 腾讯云
未完待更新~