WXML只能在微信小程序开发者工具中预览,而HTML可以在浏览器中预览
组件封装不同。 WXML 重新封装了组件。
小程序运行在JS Core中。没有DOM树和对象,小程序中不能使用对象和对象。
3.请谈谈WXSS和CSS的异同?
它们都是用来描述页面的外观的;
WXSS具有CSS的大部分功能,同时也做了一些扩展和修改;
WXSS增加了新的尺寸单位,WXSS底层支持新的尺寸单位rpx;
WXSS仅支持部分CSS选择器;
WXSS提供全局样式和局部样式
4、微信小程序的数据请求如何封装?
在根目录下创建一个目录并创建api.js文件和.js文件;
在.js中,封装基本的get、post和put等请求方法,设置请求体、和异常处理等;
在api中引入.js封装的请求方法,根据页面数据请求的url设置对应的方法并导出;
导入到特定页面;
5、小程序页面之间传输数据的方式有哪些?
使用全局变量实现数据传输
页面跳转或重定向时,使用url带参数传递数据
使用组件模板传递参数
使用缓存传递参数
使用数据库传递数据
6.请谈谈小程序和vue的双向绑定有何异同?
大致是一样的,但是小程序直接的this.data属性无法同步到视图,必须调用this.()方法!
7.请谈谈小程序的生命周期功能?
() 在页面加载时触发,只会调用一次,获取当前页面路径中的参数。
() 页面显示/切换到前台时触发,一般用于发送数据请求;
() 在页面初始渲染完成时触发。它只会被调用一次,这意味着页面可以与视图层交互。
() 页面隐藏/切换到后台时触发,比如底部标签切换到其他页面或者小程序切换到后台等。
() 当页面卸载时触发,比如或者去其他页面时触发。
8.简述微信小程序的原理?
小程序本质上是一个单页面应用程序。所有页面渲染和事件处理都在一个页面内完成,但可以通过微信客户端调用各种原生接口;
它的架构是数据驱动的架构模型,UI和数据是分离的。所有的页面更新都需要通过数据的改变来实现;
从技术上来说,和现有的前端开发类似,采用三种技术:WXML、WXSS进行开发;
该功能可分为两部分: 和;
用于显示UI并处理业务逻辑、数据和接口调用;
这两部分运行在两个进程中,通过系统层进行通信,实现UI渲染、事件处理等。
9、请谈谈原生开发的小程序、wepy、和?
个人认为,如果是新项目,没有老h5项目的迁移,那么可以考虑使用小程序进行原生开发。优点是相比第三方框架,陷阱较少。
而如果有Vue开发的老h5项目或者有同样需要小程序开发的h5项目,则更适合wepy或者进行迁移或开发。最近wepy几乎没有更新,所以推荐美团。
而且如果团队前端实力强的话,自己搭建一个框架也是没问题的。
----------------------------------------------------------分隔线--- -----------------------------------------------------------
1.简述微信小程序的相关文件类型?
1.根据文件后缀
①.wxml模板文件是一套用于框架设计的标签语言。结合基本组件和事件系统,就可以构建页面的结构。
②.wxss样式文件是一组用于描述WXML组件样式的样式语言。
③.js脚本逻辑文件,逻辑处理网络请求
④.json配置文件,小程序设置,如页面注册、页面标题等
2. app.json 整个小程序的全局配置,包括:
:[所有页面路径]
网络设置(网络超时)
界面表现(页面注册)
:{背景颜色、导航样式、默认标题}
底部标签等
3、app.js监控并处理小程序的生命周期函数并声明全局变量
4.app.wxss全局配置样式文件
2、微信小程序的数据请求如何封装?
1.将所有接口放在统一的js文件中并导出
2.在app.js中创建一个方法来封装请求数据
3.在子页面中调用封装好的请求数据
或者
1、在根目录下创建一个目录并创建api.js文件和.js文件;
2、在.js中封装基本的get\post\put\等请求方法,设置请求体、和异常处理等;
3、在api.js中引入.js封装的请求方法,根据页面数据请求的url设置对应的方法并导出;
4、特定页面导入;
3、微信小程序有哪些传值(数据传输)方式?
1、在html元素中添加data-*属性来传递值,然后通过e..或参数获取。

注意:data-name不能有大写字母,也不能存储对象。
2、设置id的方法标识符来传递值,通过e..id获取设置的id的值,然后通过设置全局对象来传递值。
3.在中添加参数值
或者
1.使用全局变量实现数据传递
2、页面跳转或重定向时,使用url带参数传递数据。
3.使用组件模板传递参数
4.使用缓存传递参数
5.使用数据库传递参数
4、有哪些方法可以提高微信小程序的应用速度?
1.提高页面加载速度
2、用户行为预测
3. 减少默认数据的大小
4. 组件解决方案
5、微信小程序的原理是什么?
微信小程序的开发使用了三种技术:wxml和wxss。与现有前端开发的区别在于:
① 代码运行在微信APP中,因此一些h5技术应用需要微信APP提供相应的API支持;
②wxml微信本身是基于xml语法开发的,所以开发时只能使用微信提供的现有标签,不能使用html标签;
③wxss具有css的大部分功能,但在没有详细文档的情况下并不是全部都支持(wxss的图片引入需要使用外部链接地址,没有body,直接导入样式即可)。
微信的架构是数据驱动的架构模型。它的UI和数据是分离的。所有页面更新都需要更改数据。
小程序功能分为UI和APP,主要用于展示UI以及处理业务逻辑、数据和接口调用。它们分两个进程进行,通过系统层进行通信,实现UI渲染和事件处理。
6、分析微信小程序的优缺点?
优点:
① 上手容易,基础组件库比较齐全,基本不需要考虑兼容性问题;
②开发文档比较齐全,开发社区比较活跃,支持插件开发;
③用户体验好:无需下载,搜索扫描即可打开,打开速度快,在上可添加到桌面,与原生APP类似;
④开发成本比APP低;
⑤为用户提供良好的安全保障(小程序发布严格审核流程)
缺点:
① 限制较多,页面大小不能超过1M,不能打开5级以上页面;
② 样式单一,有些组件已经成型,样式无法修改,如:幻灯片、导航
③推广范围窄,无法分享到朋友圈。只能通过分享给好友、附近的小程序来推广。
④ 依赖微信,无法开发后台管理功能
⑤api接口必须请求公网地址,后端调试比较麻烦
⑥真机测试,安卓和苹果个别功能表现差异较大。例如,的定位功能加载速度非常慢。
7、微信小程序和H5有什么区别?
①运行环境不同(小程序运行在微信上,h5运行在浏览器上);
②开发成本不同(h5需要兼容不同浏览器);
③ 获取不同的系统权限(系统级权限可与小程序无缝对接);
④应用在生产环境中的运行流畅度(h5需要不断优化项目,提高用户体验);
8.如何解决微信小程序的异步请求问题?
在回调函数中调用下一个组件的函数:
应用程序.js
success:function(info){ that.apirtnCallback(info) }
.js
onLoad:function(){ app.apirtnCallback = res =>{ console.log(res) } }
8、小程序关联微信公众号时如何判断用户的唯一性?
当 wx.方法正确,可以得到。后端需要进行对称解密。
9、使用直接加载时需要注意什么?
① 必须使用管理员在小程序后台添加企业域名;
②h5页面跳转到小程序的步骤必须为1.3.1或以上;
③微信分享只能是小程序的主名称。如需自定义分享内容,小程序版本需为1.7.1及以上;
④H5支付不能来自微信公众号,必须来自小程序,用户的支付也必须来自用户和小程序。
10、小程序调用后端接口时会遇到哪些问题?
① 数据大小限制。超出范围会直接导致整个小程序崩溃,除非重新启动小程序;
②小程序无法直接渲染文章内容等HTML文本。显示需要使用插件。
注意:插件渲染会导致页面加载变慢。建议在后台过滤文章内容的HTML,直接在后台处理p标签和div标签与view标签的批量替换。然后让插件做其他标签。
11、微信小程序如何实现下拉刷新?
使用view而不是-view来设置函数实现
12、如何从 中的页面跳转回小程序?
wx.miniProgram.navigateTo({ url:’pages/login/login’+’$params’ }) //跳转到小程序导航页面 wx.miniProgram.switchTab({ url:’/pages/index/index’ })
13. 和 有什么区别?
①事件绑定不会阻止事件冒泡
②事件绑定可以防止事件冒泡

14. 简要说明
wx.()、wx.()、wx.()、wx.()、wx.() 之间有什么区别?
①在wxml页面中:
wx.() 跳转到新页面
wx.() 在当前页面打开
wx.()切换到主页Tab
②js页面中:分为页面和应用内页面;
③如果上述跳转遇到跳转失败或者无效的问题,请访问:wx./wx.
15、小程序的生命周期功能是什么?
1.()在页面加载时触发。只会调用一次来获取当前页面路径中的参数。
2.()页面显示/切换到前台时触发,一般用于发送数据请求
3.()在页面初始渲染完成时触发。它只会被调用一次,这意味着页面可以与视图层交互。
4. () 页面隐藏/切换到后台时触发,比如底部标签切换到其他页面或者小程序切换到后台等。
5. () 页面卸载时触发,比如或者转到其他页面时。
16、小程序和Vue编写有什么区别?
①遍历时:小程序wx:for = "",而vue是v-for = "item in "
②调用数据模型(赋值)时:
小程序:
this.data.item //调用 this.setData({item:1}) //赋值
视图:
this.item //调用 this.item =1 //赋值
17.微信小程序开发常见问题
1.rpx:小程序的大小单位,屏幕指定为,可以适配不同分辨率的屏幕。
2、无法通过wxss获取本地资源
-:可以使用网络图片,或者,或者使用标签
3.wx.无法打开页面
一个应用程序只能同时打开5个页面。请避免多级交互,或者使用wx.
4. 设置不显示
① 数量少于2件或多于5件的不显示;
②写入错误导致不显示;
③无书写栏(程序启动后显示的第一页)
17、我们先来一个经典的面试题:用户第一次点击小程序后会发生什么?
一般来说,会有以下三个过程:
1、白屏三点:下载代码包阶段
2、白屏无三点(通常很快):业务代码注入和渲染阶段
3、数据请求的最终呈现:业务代码中异步请求数据
预加载阶段是微信帮我们完成的。这是在打开并进入小程序之前完成的。
小程序启动时,会首先拉取代码包。在拉取代码包的时候,控制包的大小其实非常重要。之前听官方说1MB的代码下载大约需要1秒。当然,我已经很久没有做过小程序了。 ,不知道现在怎么样了
常见的意思是:
压缩代码并清理无用代码
图片在cdn上
采取分包策略
分包预加载
独立分包(版本要求有点高)
请求阶段优化:
您可以在此阶段发起请求,无需等待。
请求结果放入缓存,下次使用
请求中可以先显示骨架图
先反馈,后请求。例如,对于点赞按钮,您可以先更改按钮样式,然后发起异步请求。 (这个和微博点赞一样,默认成功,如果消息队列交易方式失败,下次进入界面就看不到点赞了)
渲染问题的性能提示:
问题:小程序也使用了渲染,与混合APP的原理大致相同,因此通过中间层通信会存在性能损耗问题。
混合应用程序:
小程序:
常见的优化方法:
1.减少数据量(去掉不影响视图的数据)
2、减少次数,合并频繁的。
3. Diff思想,精准数据操作,部分更新接口
尤其是下拉加载较多的时候,有时会卡住。这时候就需要考虑事件是否被频繁触发,导致卡住。
以上文章来自WX公众号-前端巅峰,作者谭金杰的《小程序技术要点与性能优化要点》