一个基于common.js规范,webpack打包的jQuery商城平台前台项目
这个是我自己学习开发前端页面,同时完成整个项目的搭建,从初始化到上线发布,框架仅使用了jQuery,没有使用当红的一些框架,甚至没有使用样式框架如Bootstrap 为的就是学习了解一个纯正原生的前端开发过程。总之收获满满,非常开心哈哈哈哈
下面是学习过程中的一些笔记,也放这里吧哈哈哈哈哈
- 分层架构
- 解耦(可服用)
- MVC、MVVM
- 模块化
- 解耦,并行开发
- AMD、CMD、CommonJS、ES6
- JS的运行环境
- 构建工具WebPack的环境依赖
- 单线程、异步编程
npm:Node Package Manager
- Element : 网页标签结构元素
- Console : 打印日志
- NetWork : 网络以及资源的请求
- Sources ; 网页请求的所有文件,可以在里面打断点
- Application : 查看本地的一些保存信息
npm
npm init
: 在项目根目录初始化npm install xxx@v.v.v
npm uninstall xxx@v.v.v
-g
: 全局配置--registry==https://registry.npm.taobao.org
: 指向淘宝npm源,速度快很多
npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)
npm run script
: 运行自己的快捷脚本,在script里面配置
webpack
- 加载方式 : 各种loader插件
- 编译方式:commonjs模块-> function类型模块
- 官网Github
npm install webpack -g
: 全局webpack安装npm install webpack@1.15.0 --save-dev
--save-dev 是你开发时候依赖的东西,--save 是你发布之后还依赖的东西。
webpack2.x版本会生成一条引用object.default的语句会在IE8中报错
webpack.config.js
entry
: js的入口文件externals
: 外部依赖的声明output
: 目标文件resolve
: 配置别名module
: 各种文件,各种loaderplugin
: 插件
常用loader
html
:html-webpack-plugin
/html-loader
js
:babel-loader
+babel-preset-es2015
css
:style-loader
+css-loader
img
+font
:url-loader
常用命令
webpack
: 移步压缩的形式来打包,调试代码用webpack -p
: 压缩的形式来打包,常用于环境的发布webpack --watch
: 监听文件改变,用于开发过程webpack --config webpack.config.js
: 指定webpack配置文件
webpack-dev-server
- 作用:前端开发服务器
- 特点:可以在文件改变是,自动刷新浏览器
- 安装:
npm install webpack-dev-server --save-dev
- 在webpack配置文件中添加:
webpack-dev-server/client?http://localhost:8080
- 使用:
webpack-dev-server --port 8088 inline
- Js用什么loader加载
- 考虑到IE8的兼容性问题,不使用babel-loader
- 使用webpack原生的js加载
- 官方entry只有一个js,有多个怎么办
- 具体可以看raymall项目的
webpack.config.js
有丰满的注释
- 具体可以看raymall项目的
- output要分文件夹存放文件,要怎么设置
- 在
filename
前面加上文件夹名字就可以了
- 在
- jquery引入方法
- 第一种:下面是基本步骤 : 这种还是比较繁琐的,因为每次都要引入
npm install jquery --save
: npm的方式安装jqueryvar $ = require('jquery');
$('body').html("hello");
- 第二种:直接在入口的html引入就可以了
- 第三种
webpack.config
里面的externals
配置jquery
,然后通过jquery使用
- 想要提取公共模块
- 使用
CommonsChunkPlugin
官网使用指南 - 配置:看
webpack.config
里面plugin的配置 - 这里不是很懂使用的必要性和简便性
- 使用
- csss使用什么loader
css-loader
和style-loader
- webpack打包的css要如何独立成单独文件
- 百度webpack css独立打包
npm install html-webpack-plugin --save-dev
npm install html-loader --save-dev
: 支持EJS语法,公共标签的引用
- 用法:
<%= require('html-loader!./layout/html-head.html') %>
将html打包到dist下
图片和字体的处理
针对webpack@1.15.0
需要先安装
npm install file-loader@0.11.1 --save-dev
然后再安装
npm install url-loader --save-dev
否则会报错,版本不够
url-loader
: 图片和字体资源等的打包
热编译服务器,让前端调试更加轻松 通过配置config的变量来控制开发环境和正式环境的是否启动
npm install webpack-dev-server@1.16.5 --save-dev
npm install webpack-dev-server@1.16.5 -g
: 全局安装
webpack-dev-server --inline --port 8088
: 指定端口自定义启动
webstrom/idea保存不更新webpack-dev的方法:setting->System settings->取消勾选Use 'safe write'
: 也就是不保存到idea的缓存临时文件
这个配置也可以让wds刷新快一点
watchOptions: {
aggregateTimeout: 300,
poll: 1000
},
字体图标库
npm install font-awesome --save
{{}}
: 带转义的显示信息{{{}}}
: 不带转移的,用于显示数据就是html格式的{{#imageList}} {{/imageList}}
: 遍历imageList集合,{{.}}
表示集中的item
<ul class="p-img-list">
{{#subImages}}
<li class="p-img-item">
<img class="p-img" src="{{imageHost}}{{.}}" alt="{{name}}"/>
</li>
{{/subImages}}
</ul>
{{^title}} message{{title}}
表示 title不存在的时候显示message- ``
- 网络请求工具
- URL路径工具
- 模板渲染工具-hogan
- 字段验证 && 通用提示
- 统一跳转
- 定宽布局
- 通用部分的抽离
- 通用导航
- 通用头部
- 通用footer
- 通用侧面导航
- 通过结果返回页面
- icon-font的引入
- 通用样式
##业务开发
- 页面
- 用户登录
- 用户注册
- 找回密码
- 个人中心
- 修改密码
- 数据安全性处理方案
- 表单同步/异步验证
- 小型SPA开发
- 事件委托、事件绑定、事件监听
- hogan模板的使用
知识点
- jQuery插件模块化改造
- 轮播图插件的封装使用
- 独立组件抽离技巧
- 分页组件
- 多功能列表开发
- 原型、原型链
首页功能点:
- 推荐搜索关键字的快捷链接
- 活动展示的轮播图
- 分楼层的商品分类信息
列表页功能点
- 列表展示
- 排序
- 分页处理
详情页
- 信息展示
- 缩略图
- 添加购物车
- 商品状态随时验证
- 模块内部方法调用
- 非Form提交时的数据验证
功能点:
- 购物车商品展示
- 修改购物车数量
- 选择和取消选择,全选,反选,商品
- 结算
- Modal式组件封装思想
- 城市级联操作
- 复杂表单回填
页面
- 订单页
- 地址管理(crud)
- 订单信息展示
- 订单提交
- 订单列表页
- 订单详情页
- 订单详细信息
- 未支付订单可以继续支付
- 取消订单
- 支付宝功能对接
- 支付宝状态动态监测
- 支付成功回调
- 添加favicon
Html-webpack-plugin
:添加favicon
的配置
- 线上域名分离,HTML路径简化
- 添加DNS-prefetch
-就是当你浏览网页时,浏览器会加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页链接无需DNS解析,减少等待时间
- 在
head-common
添加配置,把需要引用的文件域名都添加进去
- 在
- 对线上打包结果做回归测试
- PV:页面打开次数
- UV: 一个人一个是时间无论打开多少页面都算一个UV
- VV : 用户进入网站到离开,算一次VV
- 流量来源监控:
- 搜索关键词来源:
- 用户设备信息:通过屏幕分辨率,浏览器版本等分析出来
- 用户特征分析
- SEO优化技巧
- 增加页面数量
- 减少页面层级
- 关键词密度
- 高质量友链
- 分析竞争对手
- SEO监控
- 关键词设计
- 品牌关键词:Raymall、Raymall电商...
- 高频关键词:电商平台、手机、笔记本电脑、相机、手表...
- 长尾关键词:肚子疼了怎么办,什么东西便宜
- SEO监控
- 百度统计 : 数据超多,基本能够满足需求
- 添加域名
- 获取js代码,添加到head-common中
- 外部监控原理
- 第三方监控的设置
- 更高级的监控方式