1.h5页面-手机拨号,发短信
- 拨号:
<a href="tel://0769-22210105">联系客服</a>
- 发短信
<a href="sms:10086?body=message_body">给 10086 发短信</a>
- 发送地理定位
<a href="geopoint:116.281469,39.866035">我的位置</a>
2.vue 模块下的state访问
this.$store.state.modulesName.var
@modulesName 是我们定义的模块名字
@var 是模块里的state里的变量名
3.npm包的发布
- 首先要建立自己的npm账号(不过我是直接去npm注册的,注册之后会有个邮件,点击链接校验即可)
npm adduser // 新建用户
```ts
- 初始化包
```vue
npm init
- 参数列表
name:填写你这个包的名字,默认是你这个文件夹的名字。
不过这里要着重说一下,最好先去npm上找一下有没有同名的包。
最好的测试方式就是,在命令行里面输入npm install 你要取的名字,
如果报错,那么很好,npm上没有跟你同名的包,你可以放心大胆地把包发布出去。
如果成功下载下来了。。。那么很不幸,改名字吧。。。
version:你这个包的版本,默认是1.0.0
description:其实我也不知道是什么,按回车就好了。。。,
这个用一句话描述你的包是干嘛用的,
比如我就直接:‘a plugin for express.register routes base on file path’
entry point:入口文件,默认是Index.js,你也可以自己填写你自己的文件名
test command:测试命令,这个直接回车就好了,因为目前还不需要这个。
git repository:这个是git仓库地址,如果你的包是先放到github上或者其他git仓库里,
这时候你的文件夹里面会存在一个隐藏的.git目录,
npm会读到这个目录作为这一项的默认值。如果没有的话,直接回车继续。
keyword:这个是一个重点,这个关系到有多少人会搜到你的npm包。
尽量使用贴切的关键字作为这个包的索引。
我这个包嘛,第一是在express下工作的,然后又是一个插件plugin,
然后又是一个注册路由route用的,而这个路由又是基于文件目录dir,
所以很好就得出我的包的索引关键字。
- 编写index.js文件
const toast = function (vue, options) {
vue.prototype.msg = "npm Toast"
}
export default toas
- 发布npm包, 发布之前需要登陆一下
npm login
//之后输入自己的用户和密码
npm publish
//发布包
- 最后,在npm包的官网上可以查询到你的包
4.vue项目里,img标签报错,添加默认图片
问题描述: 后台返回了图片路径,但是数据库中,并没有图片资源。毕竟是使用了第三方的存储.
解决方案:使用img标签的onerror属性。
// 直接加载
<img src="../../assets/img/timg.jpg">
// 设置为logo.png加载失败后显示的默认图片
<img src="/logo.png" onerror="this.src=../../assets/img/timg.jpg">
webpack改变图片的路径
<img src="/logo.png" :onerror="defaultImg">
data() {
return {
defaultImg: 'this.src="' +
require('../../assets/img/timg.jpg') + '"'
}
}
5.axios 实现loading加载提示
使用拦截器就可以了,请求拦截,和响应拦截。其实思考一下。
- 0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法。
- 1 (载入):已经调用open() 方法,但尚未发送请求。
- 2 (载入完成): 请求已经发送完成。
- 3 (交互):可以接收到部分响应数据。
- 4 (完成):已经接收到了全部数据,并且连接已经关闭。
// 请求的地方设置成true
axios.interceptors.request.use(function () {
store.isLoading = true
})
// 响应的地方设置成false
axios.interceptors.response.use(function () {
store.isLoading = fasle
})
如果页面的请求很多,比如页面有7,8个请求。可以设置一个队列或者在store.requestCount 请求的次数。
6.qs库
作用:使用qs库对url进行处理
- 方法: stringify()
var obj = {
a: "kingEND",
b: "bname"
}
var res = qs.stringify(obj)
console.log(res)
结果显示:
a="kingEND"&b="bname"
- 方法: parse()
var url = 'method=query_sql_dataset_data&projectId=85&appToken=7d22e38e-5717-11e7-907b-a6006ad3dba0';
var res = qs.parse(url);
console.log(res)
结果显示:
{
method: "query_sql_dataset_data",
projectId: "85",
appToken: "7d22e38e-5717-11e7-907b-a6006ad3dba0"
}
7.vue的v-for指令无法使用在tr、td中
因为tr,td 不含语义,所以浏览器不显示。。。
8.vue 打包之后,npm run dev页面空白
原因是因为改了,config,index.js文件的assetpulblic ‘./’,如果改了build类里的,dev类里的assetpublic './‘也会被更改。
npm run dev 是加载dev类里的配置,而npm run build是加载build里的类。
- 图片加载问题
css样式里的图片加载问题。
如果你用了vue-cil,那么在build目录下找到utils.js中的
ExtractTextPlugin.extract({
}),
里面添加下面这个属性就完美解决了publicPath: '../../'
9.unix时间转化
后端返回一个unix时间戳,前端进行处理, 转化成 yyyy-mm-dd HH:MM:SS格式
let time = 1511860994
let date = new Date(time * 1000)
date.getFullYear()