使用 Vue 构建饿了么点餐页面,作为练手项目,记录一下自己的学习过程
- Vue.set() Object or Arrays - 深入响应式原理
- Vuex 集中数据管理
- Vue 过渡动画 transition transition-group
- 基于
JSON.parse
和JSON.stringify
实现了saveToLocal
和loadFromLocal
两个函数来访问localStorage
, 可以保存诸如收藏之类的信息 - 应用<<CSS 世界>>中学到的 z-index不犯二 准则
- 计算地球上两个点的距离
export function calculateDistance(lat1, lng1, lat2, lng2) { //latitude //langitude
var radLat1 = lat1 * Math.PI / 180.0;
var radLat2 = lat2 * Math.PI / 180.0;
var a = radLat1 - radLat2;
var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * 6378.137;
s = Math.round(s * 10000) / 10000;
return s
};
令 分别代表球面上两点的经纬度,(s代表出发点,f代表前往点), 是两者差的绝对值,那么两点之间的圆心角可由球面余弦定律(人教版高二数学选修3-3)所给出:
此两点间的大圆距离 d,即可根据弧长公式得出,
在两点之间的大圆距离相对球体的半径很短时,其圆心角很小,余弦函数接近于1,按照以上的反余弦函数公式会有较大的舍入误差。 此时可使用半正矢函数的定义和两角和的余弦函数展开式求出使用半正矢函数计算大圆距离的公式。
这就是在航海上运用广泛的半正矢公式,历史上会将距离和半正矢函数值的关系直接制成表格,方便使用
border-1px
通过scale
实现- 元素大小可使用
lib-flexible
或遵循建议使用vw
- 结合
@media
防止 iPhone 5 屏幕过窄而使得元素错位
nuxt.js
服务器渲染koa2 koa-router koa-static
简单服务器cheerio
获取并解析 eleme 网站数据puppeteer
nginx
端口转发upstream
pm2
进程守护
- eslint 配置[未完成]
- hash图片来自于
"https://picsum.photos/50/50/?image=" + parseInt(1+900*Math.random())
- 开发时使用
frp
做内网穿透 segmentfault 链接 - 正则表达式
look-forward
金钱分割$
表示以此结尾
"1234567890".replace(/(\d)(?=(\d{3})+$)/g,"$1,")
//1,234,567,890
"1234567890".replace(/(\d)(?=(\d{3})+)/g,"$1,")
//1,2,3,4,5,6,7,890
nuxt
的keep-alive
有问题, 如果选择了keep-alive
会导致mounted
和created
函数不执行,而 data 会重新读取初始值. 我在官方目录参与的 Issue 链接 update at 2018/10/19 官方v2.2.0
已修复nuxt
的nuxt-child transition
的mode
有问题, 如果设置mode:'in-out'
或mode:'out-in'
均和 vue 的transition-mode
一致, 但是无法执行那种前一个元素离开和后一个元素进入同步进行的动画 , 这个需要等待nuxt
改进flex-shrink 1
对img
子元素无效(无法让超出父元素宽度的图片组缩小),目前暂以计算属性解决
<img :style="'width: '+ 100/items.length+'vw' src="" alt="">
-
z-index
管理 #2 - 随着 nuxt 版本而更新
-
2.2.0
keep-alive
支持 , 实测仍未解决 data 重新读取初始值的问题-
nuxt.config.js
使用 esm 语法
-
- 把店铺数据存入
mongo
- 上拉加载新数据,即
mongo 分页