友情链接

vue组件设计一些建议

手机端h5调试方法

一 css

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

.topWrap .introduce span {
padding: 0 17px;
display: inline-block;
border-radius: 5px;
height: 18px;
line-height: 18px;
margin-top: 15px;
max-height: 18px;
max-width: 90%;
white-space:nowrap;
text-overflow:ellipsis;
overflow: hidden;
color: #fff;
font-size: 12px;
}

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

.content .dynamicList .dynamicText p {
max-height: 162px;
font-size: 16px;
color: #000;
line-height: 20px;
padding-bottom: 5px;
overflow: hidden;
max-height: 100%;
text-overflow:ellipsis;
display: -webkit-box;
-webkit-line-clamp:8;//最多显示8行
-webkit-box-orient:vertical; }

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

  注:减号 前后必须有空格

width: calc(100% - 20px); 

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

 -webkit-tap-highlight-color: transparent;
-webkit-appearance: none;

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

 overflow: scroll;
-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了。

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

       vm.feedItems = response.data.feedItems;
          //对数据格式化

            jugeCommentType(response.data.feedItems);
            sessionStorage.setItem('tempFeeds', JSON.stringify(vm.feedItems));
setScroll(vm);
}, (response) => {
// error callback
}); //对数据格式化
function jugeCommentType(arr) {
for (var i = 0; i < arr.length; i++) {
// console.log(arr[i].clist.length);
arr[i].comment = [];
arr[i].praise = [];
if (arr[i].clist && arr[i].clist.length) {
for (var j = 0; j < arr[i].clist.length; j++) {
if (!arr[i].clist[j].content) {
arr[i].praise.push(arr[i].clist[j]);
if (arr[i].clist[j].authorId == '1201') {
arr[i].isPraised = true;
arr[i].commentId = arr[i].clist[j].commentId;
}
} else {
arr[i].comment.push(arr[i].clist[j]);
}
}
} }
}

4.ajax设置请求头

  vm.$http.get(
address, {
headers: {
'Authorization': auth,
'x-feinno-agent': 'Android 5.3.0'
} }
).then((response) => {
console.log(response.data); }, (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. centos6字符

    [root@back_zabbix_100 ~]# echo $LANGen_US.UTF-8[root@back_zabbix_100 ~]# cat /etc/sysconfig/i18n LAN ...

  2. ZXing二维码生成在Unity3D中出错,数组超出界限的解决办法

    错误截图: IndexOutOfRangeException: Array index is out of range.ZXing.Color32Renderer.Render (ZXing.Comm ...

  3. ubuntu14.04上Virtualbox安装win7(使用Ghost镜像安装,启用USB设备支持,设置共享目录)

    由于某些软件只有windows版本,于是只好安装个虚拟机win7 /**************************安装*************************************/ ...

  4. Java虚拟机

    虚拟机每次方法的调用和返回都伴随着栈帧的入栈和出栈,而每个栈帧都包含一个指向运行时常量池中该栈帧所属方法的引用(表明该栈帧执行的是哪个方法),持有这个引用是为了支持方法调用中的动态连接.这些符号引用中 ...

  5. C# Winform中如何让PictureBox的背景透明

    最近做winform程序,其中有个需求:有两个PictureBox完全重叠,上面一个需要透明,不能遮挡下面的,以为设置上面的BackColor为透明色就可以了,结果不行,上网搜了一下,发现对于我这种需 ...

  6. 元素的click与dblclick

    JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,是用户或浏览器自身执行的某种动作.诸如click.load.mousemover,都是事 ...

  7. ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...

  8. [nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

    一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指 ...

  9. 如何给CentOS安装字体库

    很多时候,我们需要做一些图像生成工作(譬如验证码之类的),这时候,我们一般都需要用到系统的字体库.但事情却总非尽善人意,我们所使用的Linux操作系统无法像Windows操作系统那样足够“旗舰”,字体 ...

  10. 纸上谈兵: 图 (graph)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 图(graph)是一种比较松散的数据结构.它有一些节点(vertice),在某些节 ...