友情链接

vue组件设计一些建议

手机端h5调试方法

一 css

1.文字超过span宽度显示...(单行文字)

  1. .topWrap .introduce span {
  2. padding: 0 17px;
  3. display: inline-block;
  4. border-radius: 5px;
  5. height: 18px;
  6. line-height: 18px;
  7. margin-top: 15px;
  8. max-height: 18px;
  9. max-width: 90%;
  10. white-space:nowrap;
  11. text-overflow:ellipsis;
  12. overflow: hidden;
  13. color: #fff;
  14. font-size: 12px;
  15. }

2.文字超过span宽度显示...(多行文字)

  1. .content .dynamicList .dynamicText p {
  2. max-height: 162px;
  3. font-size: 16px;
  4. color: #000;
  5. line-height: 20px;
  6. padding-bottom: 5px;
  7. overflow: hidden;
  8. max-height: 100%;
  9. text-overflow:ellipsis;
  10. display: -webkit-box;
  11. -webkit-line-clamp:8;//最多显示8
  12. -webkit-box-orient:vertical;
  13.  
  14. }

3.盒子宽度百分比减去固定宽度

  注:减号 前后必须有空格

  1. width: calc(100% - 20px);

4.去掉点击元素蓝色区域

  1. -webkit-tap-highlight-color: transparent;
  2. -webkit-appearance: none;

5.ios滑动不流畅,需要在滑动的父盒子上加

  1. overflow: scroll;
  2. -webkit-overflow-scrolling: touch;

  

二 js

1.部分低端安卓手机不支持touchend事件

1.在touchmove中加入 e.preventDefault()可以解决。

详细解决方法参考这里

2.检测浏览器localstroge存储容量

3.原生js监测低版本ie浏览器and手机登录

if (browser == "Microsoft Internet Explorer" && (trim_Version == "MSIE6.0" || trim_Version == "MSIE7.0" || trim_Version == "MSIE8.0" || trim_Version == "MSIE9.0")) {
//低版本ie登录逻辑
} else if (p.indexOf("Win") == -1 && p.indexOf("Mac") == -1) {
//手机端登录逻辑
}

4.textarea 输入换行,保存到数据库后输出时换行符变成空格。

数据库中读出来的数据需要做如下处理

var regn = /\n/g;
var regrn = /\r\n/g;
value = value.replace(regn, '<br>').replace(regrn, '<br>');

三 vue

1.vue会把对象转成  set  get的形式

可通过JSON.parse(JSON.stringify(item))转成普通对象

2.vue-router

main.js 配置具名路由

'/dynamic/:deviceId/:dataId': {
name:'dynamic',
component: DynamicView
}

跳转处配置如下

v-link="{ name: 'dynamic',params: { deviceId: 123, dataId:456 },query:{age:1}}"

目标路由页ready下拿到数据

console.log(this.$route.params);
console.log( this.$route.query);

输出如下

{deviceId: 123, dataId:456},{age:1}

3.大坑

从后台取回数据。然后对数据格式化(给列表的每一项加了两个属性),且这两个属性要动态渲染到dom上,但是发现触发时数据变了,视图没有变。

后来修改如下两句代码的顺序OK了。

  1. //向后台发送ajax请求
  2. this.$http.get(url).then((response) => {

  3.        vm.feedItems = response.data.feedItems;
  1. //对数据格式化
  2.  
  3. jugeCommentType(response.data.feedItems);
  1. sessionStorage.setItem('tempFeeds', JSON.stringify(vm.feedItems));
  2. setScroll(vm);
  3. }, (response) => {
  4. // error callback
  5. });
  6. //对数据格式化
  7. function jugeCommentType(arr) {
  8. for (var i = 0; i < arr.length; i++) {
  9. // console.log(arr[i].clist.length);
  10. arr[i].comment = [];
  11. arr[i].praise = [];
  12. if (arr[i].clist && arr[i].clist.length) {
  13. for (var j = 0; j < arr[i].clist.length; j++) {
  14. if (!arr[i].clist[j].content) {
  15. arr[i].praise.push(arr[i].clist[j]);
  16. if (arr[i].clist[j].authorId == '1201') {
  17. arr[i].isPraised = true;
  18. arr[i].commentId = arr[i].clist[j].commentId;
  19. }
  20. } else {
  21. arr[i].comment.push(arr[i].clist[j]);
  22. }
  23. }
  24. }
  25. }
  26. }

4.ajax设置请求头

  1. vm.$http.get(
  2. address, {
  3. headers: {
  4. 'Authorization': auth,
  5. 'x-feinno-agent': 'Android 5.3.0'
  6. }
  7.  
  8. }
  9. ).then((response) => {
  10. console.log(response.data);
  11.  
  12. }, (response) => {});

5.如果一个对象数组中某一项发生变化vue不能检测,需要用$set 如下

this.obj.$set(0, { name: 'dt!'})

对象某个属性增加this.set(obj, 'c', 3)

6.删除数组中的某一项并让xue检测

this.arr.$remove(item);(item是具体要删除的那一项)

四 node

1.gzip压缩  压缩完是原来的三分之一左右,极大提高了加载速度。

const compression=require('compression');

app.use(compression());//放在所有中间件最前面

2.包积累

(1)rimraf   删除文件夹用  类似 rm -rf

vue+node开发手机端h5页面开发遇到的坑的更多相关文章

  1. iPhone X 适配手机端 H5 页面通用解决方案

    一:本文提供两种解决方案 1.终端解决方案(最优,建议选择) 2.web解决方案 导语: iPhone X的出现,一方面对于整个手机行业的发展极具创新领头羊的作用,另一方面也对现有业务的页面适配带来了 ...

  2. 记录手机端h5页面碰到的一些问题

    关于input光标在手机端偏移 问题根本:不要使用line-height垂直居中. 解决方法:可直接定义height,然后高度由上下padding值撑开. 移动端清除input光标 ios input ...

  3. 手机端h5页面 图片根据手势放大缩小

    pinchzoom.js 这个插件可以简单的实现这一功能 <div class="big_pos_img page"> <div class="pinc ...

  4. C#开发微信门户及应用(44)--微信H5页面开发的经验总结

    在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关功能页 ...

  5. 移动端H5页面开发,碰到一个字体变大的BUG

    移动端H5页面开发,碰到一个字体变大的BUG webkit内核下,对不定高宽的元素可能会放大其字体.那么,就可以设置一个max-width:或者使用-webkit-text-size-adjust: ...

  6. 【极品代码】一般人我不告诉他,手机端h5播放时不自动全屏代码

    已测适用于ios,某些安卓手机微信下播放视频会出现播放器控件(这个实在是无力吐槽噢,因为之前还遇到过微信播放完视频后竟然无法退出全屏出现广告的情况,只有播放完后刷新页面并且要放到框架页里才能屏蔽微信视 ...

  7. 移动手机端H5无缝间歇平滑向上滚动js代码

    在没结合css3的transform实现平滑过渡前,我都是用的jquery的animate方法,此方法在PC端基本看不出来有稍微卡顿的现象,但是在性能不高的手机上使用该方法,就会有明显的卡顿现象,不够 ...

  8. TERSUS无代码开发(笔记07)-简单实例手机端后台逻辑开发

    提交申请逻辑开发 1.添加父级对象引用(从父级对象中获取前端输入框的值) 1.设计数据库表(表名和字段名称不能用中文) 2.设计置数据库主键(可设联合主键) 3.传值形成数据实列处理 4.服务器端处理 ...

  9. 专注手机端前端界面开发的ui组件和js组合

    frozenui一款腾讯开发的简化版Bootstrap,只用于手机端 http://frozenui.github.io/ https://github.com/frozenui/frozenui z ...

随机推荐

  1. js通过注册表找到本地软件安装路径并且执行

    场景:用js执行本地的安装软件,如果不存在就执行安装 操作步骤: 1.前台js代码 <script type="text/javascript"> function e ...

  2. 解决Unity5+Vuforia+Network本地联机发布到Android上白屏的问题

    Unity5+Vuforia+Network本地联机,在Android下点击联机,然后识别模型就出现白屏,点击屏幕上相应位置的按钮(已白屏,但点击该看不见的按钮)还是能起作用,如跳转到其他场景正常. ...

  3. C语言两种查找方式(分块查找,二分法)

    二分法(必须要保证数据是有序排列的):   分块查找(数据有如下特点:块间有序,块内无序):    

  4. HTML基础篇之知识点补充和拓展

    <tbody>标签 <tbody>如果表格内容非常多的时候,如果加上这个标签它会让这个表格全部下载好才会显示.用在表格标签上面. 如果您使用 thead.tfoot 以及 tb ...

  5. C#_技巧:.net下C++调用C#的dll

    C#编译一个dll,比如命名空间为Csharp,里面有个类A,字段x,产生一个Csharp.dll C++ 配置,让C++支持CLR C++调用方法: #include <iostream> ...

  6. RxJava 备注

    RxJava是一个采用观察者模式的异步框架,本文给出几个基本的使用例子. 1.配置依赖: compile 'io.reactivex:rxjava:1.0.14' compile 'io.reacti ...

  7. .NET项目版本号的小随笔

    [题外话] 一直以来都对.NET项目中的几个版本号(AssemblyVersion.AssemblyFileVersion.AssemblyInformationalVersion)以及版本号中的Re ...

  8. MySQL KEY分区

    200 ? "200px" : this.width)!important;} --> 介绍 KEY分区和HASH分区相似,但是KEY分区支持除text和BLOB之外的所有数 ...

  9. 【VC++技术杂谈003】打印技术之打印机状态监控

    在上一篇博文中我主要介绍了如何获取以及设置系统的默认打印机,本文将介绍如何对打印机状态进行实时监控,记录下所打印的文档.打印的份数以及打印时间等打印信息. 1.打印机虚脱机技术 在正式介绍如何对打印机 ...

  10. 完全移除TFS2013的版本控制

    环境:Vs2103(TFS2013) 目的:去掉别人项目里的TFS控制,因为每次打开时会有提示信息 解决方法: 1.删除隐藏的.$tf文件夹,搜索*.vssscc和*.vspscc这两个后缀的文件,删 ...