1页面性能优化方法
精简html结构,避免过多的嵌套
优化css,压缩合并,可复用
图片压缩,雪碧图,图片过小(<12k)时,可以转成base64的图片
js功能性代码做好封装可复用
2.json对象转换成字符串
json.stringify(obj):json对象转换成字符串
json.parse(string): 字符串转换成json对象
3.http状态码
200成功 500内部错误 404找不到网页
400 无效的请求,请求包含不支持的参数
4.call apply区别
作用:调用一个对象的一个方法,用另一个对象替换当前对象。
apply 传数组 例如:B.apply(A, arguments);即A对象应用B对象的方法。
call 传值 B.call(A, args1,args2);即A对象调用B对象的方法
5.页面文档加载时会触发window.load和$(document).ready的区别
ready:表示文档结构已经加载完成(不包含图片等
load:页面包含图片在内的所有元素加载完
6.数组的克隆
方法一:forEach
var temp = []; var a = [1,2,3,4,5];
a.forEach(item=>{temp.push(item)})
console.log(temp)
方法二:concat
var a = [1,2,3,4,5]
var b = [].concat(a);
console.log(b);
方法三:slice切割数组
var a = [1,2,3,4,5];
var b = a.slice(0);
console.log(b);
方法四:map
var arr1 = [2, 3, 4];
var arr2 = arr1.map(function (value) {
return value;
})
console.log(arr2);
方法五:...展开解构
var a = [1,2,3,4,5];
var b = [...a];
console.log(b);
方法五:...展开解构
var a = [1,2,3,4,5];
var temp =[];
temp.push(...a);
console.log(temp)
7.es6数组去重方法
let array=[0,3,4,5,3,4,7,8,2,2,5,4,6,7,8,0,2,0,90];
[...new Set(array)]
//[0, 3, 4, 5, 7, 8, 2, 6, 90]
es5中filter
[1,3,4,5,1,2,3,3,4,8,90,3,0,5,4,0].filter(function(elem,index,Array){
return index === Array.indexOf(elem);
})
https://blog.csdn.net/weixin_42412046/article/details/81459294
8.es6新特性
const 与 let 变量
let/const/var的区别
var:声明全局变量
let:声明块级变量,即局部变量。
const:用于声明常量,也具有块级作用域
模版字符串
ES6箭头函数
9.移动端小图标用2x或者3x图,如果用是根据什么属性去设置展示几倍图的
window.devicePixelRatio
设备物理像素分辨率与CSS像素分辨率之比
10.css3动画
常用的css动画库都用过哪些,这些动画库最基本都原理都是依据哪种属性开发的
animation自定义 关键帧动画 利用一些变形,缩放,改变位置,大小,控制执行时间来实现
1.trasition渐变动画 transtion:width 2s ease-in 500ms;
2.transform转变动画 transform:scal(0.8,1.5) rotae(90deg) skew(5deg) translate(15px,25px)
3.animation自定义动画
animation: keyframename 3s linear 0s infinite;
@keyframes rotate{
from{transform: rotate(0deg);}
to{transform: rotate(360deg);}
@-webkit-keyframes rotate{
from{-webkit-transform: rotate(0deg);}
to{-webkit-transform: rotate(360deg);}
}
11.wx:if vs hidden
wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。
因此,如果需要频繁切换的情景下,用 hidden 更好,
如果在运行时条件不大可能改变则 wx:if 较好。
12.小程序的全局配置文件app.json ,有pages,window,tabBar 三个配置项,分别说一下都是配置哪些内容的?
pages字段 —— 用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪个目录。
window字段 —— 小程序所有页面的顶部背景颜色,文字颜色定义在这里的
tab字段—小程序全局顶部或底部tab
{
"pages": [
"pages/index/index",
"pages/logs/index"
],
"window": {
"navigationBarTitleText": "Demo"
},
"tabBar": {
"list": [{
"pagePath": "pages/index/index",
"text": "首页"
}, {
"pagePath": "pages/logs/index",
"text": "日志"
}]
},
13.如何提高微信小程序的应用速度?
一、提高页面加载速度
二、用户行为预测,提前预加载下一页面的内容
三、减少默认data的大小,新页面打开时会深拷贝page对象
四、组件化方案
14.navigator 导航组件
open-type: 跳转方式 target 在那个元素上发生跳转
15.小程序中的生命周期函数都有哪些
onLoad——页面加载,调一次
onShow——页面显示,每次打开页面都调用
onReady——初次渲染完成,调一次
onHide——页面隐藏,当navigateTo或底部tab切换时调用
onUnload——页面卸载,当redirectTo或navigateBack时调用
16.小程序里面数据请求用的api里面的哪个方法, wx.request
请求回数据怎么赋值,比如初始化定义了一个数组list,
一个项目里面有很多地方需要调用后台接口,一大段的代码与回调函数,非常的不方便代码复用和代码的维护,项目中你们都是怎么处理的?
在onLoad函数里面调用 wx.request({
url:'',
success:res=>{
this.setData({
list:res.data
})
}
})
我们尝试来封装一个“数据请求层”。
新建一个api文件夹专门放置接口相关的js,
新建index.js里面封装wxRequest,封装成为Promise的形式,
然后在其他js里面引入这个模块,调用
17.小程序页面跳转的方式和区别
1.在wxml中使用标签跳转
<navigator url="../index/index" open-type="navigate">跳转到新页面</navigator>
<navigator url="../index/index" open-type="redirect">在当前页打开</navigator>
<navigator url="../index/index" open-type="reLaunch">关闭所有页面,打开到应用内的某个页面</navigator>
<navigator url="../index/index" open-type="switchTab">切换到首页Tab</navigator>
<navigator url="../index/index" open-type="navigateBack">关闭当前页面,返回上一级页面或多级页面</navigator>
2.js调用api方式
// 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,但是 redirectTo是在当前页面打开,上个页面出栈
wx.navigateTo({ url: '../details/details'})
// 关闭当前页面,跳转到应用内的某个页面。
wx.redirectTo({ url: '../details/details'})
// 跳转到tabBar页面(在app.json中注册过的tabBar页面),同时关闭其他非tabBar页面。
wx.switchTab({ url: '../index/index'})
// 关闭所有页面,打开到应用内的某个页面。
wx.reLaunch({url: '../details/details'})
//返回上一级或者多级页面
wx.navigateBack({delta: 1, // 回退前 delta(默认为1) 页面 })
18.小程序页面间有哪些传递数据的方法
1.使用全局变量实现数据传递:
在app.js文件中定义全局变量globalData,
将需要存储的信息存放在里面,使用都时候直接使用getApp()
2.url跳转(wx.switchTab 中的 url 不能传参数) options.title
3.组件间的传参数
19.小程序里的本地缓存一个用户名
异步方法
wx.setStorage wx.getStorage wx.removeStorage wx.clearStorage
同步方法(都带一个Sync)
wx.setStorageSync
20.当用户的搜索词条时,小程序的页面将可能展示在搜索结果中,这个显示是否可以控制
sitemap.json
{
"rules":[{
"action": "allow",
"page": "path/to/page",
"params": ["a", "b"],
"matching": "exact"
}, {
"action": "disallow",
"page": "path/to/page"
}]
}
js相关(8)
小程序(10)
移动端css问题(2)
网友评论