1、微信小程序主要目录和文件的作用
project.config.json:项目配置文件,用的最多的就是配置是否开启https校验
App.js:设置一些全局的基础数据等
App.json:底部tab,标题栏和路由等设置
App.wxss:公共样式,引入iconfont等
pages:里面包含一个个具体的页面
index.json:配置当前页面标题和引入组件
index.wxml:页面结构
index.wxss:页面样式表
index.js:页面的逻辑,请求和数据处理
2、wxml与html的异同
相同点:
都是用来描述页面的结构
都由标签,属性等构成
不同点:
标签名字不一样,小程序标签更少,单一标签更多
微信小程序多了一些 wx:if 这样的属性以及{{}} 这样的表达式
预览方式的不同,WXML仅能在微信小程序开发者工具中预览,而HTML可以在浏览器内预览
组件封装不同,WXML对组件进行了重新封装
小程序运行在JS Core内,没有DOM树和windiw对象,小程序中无法使用window对象和document对象。
3、WXSS和CSS的异同
相同点:
都是用来描述页面的样子
不同点:
WXSS新增了尺寸单位,WXSS在底层支持新的尺寸单位rpx
WXSS仅支持部分CSS选择器
WXSS提供全局样式与局部样式
4、封装微信小程序的数据请求的方法
(1)在根目录下创建util目录及api.js文件和apiConfig.js文件
(2)在apiConfig.js封装基础的get,post和put,upload等请求方法,设置请求体,带上token和异常处理等
(3)在api中引入apiConfig.js封装好的请求方法.根据页面数据请求的urls,设置对应的方法并导出,在具体的页面中导入
(4)将所有的接口放在统一的js文件中并导出
(5)在app.js中创建封装请求数据的方法
(6)在子页面中调用封装的请求数据
5、小程序页面之间传值或传递数据的方法
(1)使用全局遍历实现数据传递
(2)页面跳转或重定向时,使用url带参数传递数据
(3)使用组件模板 template传递参数
(4)使用缓存传递参数
(5)使用数据库传递参数
(6)给html元素添加data-*属性来传递值,然后通过e.currentTarget.dataset或onload的param参数获取(data- 名称不能有大写字母,不可以存放对象)
(7)设置id 的方法标识来传值,通过e.currentTarget.id获取设置的id值,然后通过设置全局对象的方式来传递数据
(8)在navigator中添加参数数值
6、小程序的双向绑定和vue的异同
并无太大差异
小程序之间this.data的属性不会同步到视图的,必须调用this.setData()方法
7、小程序的生命周期函数
onLoad()页面加载时触发,只会调用一次,可获取当前页面路径中的参数
onShow()页面显示/切入前台时候触发,一般用来发送数据请求
onReady()页面初次渲染完成时触发,只会调用一次,代表页面已可和视图层进行交互
onHide()页面隐藏/切入后台时触发,如底部tab切换到其他页面或小程序切入后台等
onUnload()页面卸载时触发,如redirectTO或navigateBack到其他页面时
8、提高微信小程序的应用速度的方法
提高页面的加载速度
用户行为预测
减少默认的data的大小
组件化方案
9、微信小程序的优势:
(1)容易上手,基础组件库比较全,基本不需要考虑兼容问题
(2)使用时无需下载打开速度快,在安卓上可以添加到桌面
(3)开发成本低
(4)提供良好的保障(小程序发布,严格的审查流程)
10、微信小程序的劣势:
(1)限制较多,页面大小不能超过1M,不能打开超过5个层级的页面
(2)样式单一,部分组件已经是成型的,样式不可修改
(3)严重依赖微信,无法开发后台管理功能
(4)真机测试时,根据手机不同,表现有差异
11、微信小程序和H5的区别
运行环境不同(小程序在微信运行,h5在浏览器运行)
开发成本不同(h5需要兼容不同的浏览器)
获取系统权限不同(系统级权限可以和小程序无缝衔接)
应用在生成环境的运行速度流程(h5需不断对项目优化来提高用户体验)