1. 简单描述下微信小程序的相关文件类型

 2. 简述微信小程序原理

 3. 小程序的双向绑定和vue哪里不一样

 4. 小程序的wxss和css有哪些不一样的地方

 5. 小程序页面间有哪些传递数据的方法

 6. 小程序的生命周期函数

 7. 怎么封装微信小程序的数据请求

 8. 哪些方法可以用来提高微信小程序的应用速度

 9. 微信小程序的优劣势

 10. 怎么解决小程序的异步请求问题

 11. 小程序关联微信公众号如何确定用户的唯一性

 12. 如何实现下拉刷新

 13. bindtap和catchtap的区别是什么

 14. 简述下wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch()的区别

1. 简单描述下微信小程序的相关文件类型

微信小程序项目结构主要有四个文件类型

  • WXML: WeiXin Markup Language是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件
  • WXSS: WeiXin Style Sheets 是一套样式语言,用于描述 WXML 的组件样式
  • js: 逻辑处理,网络请求
  • json: 小程序设置,如页面注册,页面标题及tabBar

主要文件

  • app.json 必须要有这个文件,如果没有这个文件,项目无法运行,因为微信框架把这个作为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的 window 背景色,配置导航条样式,配置默认标题
  • app.js 必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量
  • app.wxss 可选
2. 简述微信小程序原理

微信小程序采用 JavaScriptWXMLWXSS 三种技术进行开发,本质就是一个单页面应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口

微信的架构,是数据驱动的架构模式,它的 UI 和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现

小程序分为两个部分 webviewappService 。其中 webview 主要用来展现 UIappService 有来处理业务逻辑、数据及接口调用。它们在两个进程中运行,通过系统层 JSBridge 实现通信,实现 UI 的渲染、事件的处理

3. 小程序的双向绑定和vue哪里不一样

小程序直接 this.data 的属性是不可以同步到视图的,必须调用:

this.setData({// 这里设置
})
4. 小程序的wxss和css有哪些不一样的地方

WXSSCSS 类似,不过在 CSS 的基础上做了一些补充和修改

  • 尺寸单位 rpx

rpx 是响应式像素,可以根据屏幕宽度进行自适应。规定屏幕宽为 750rpx。如在 iPhone6 上,屏幕宽度为 375px,共有 750 个物理像素,则 750rpx = 375px = 750 物理像素

  • 使用 @import 标识符来导入外联样式。@import 后跟需要导入的外联样式表的相对路径,用;表示语句结束
/** index.wxss **/
@import './base.wxss';
.container{color: red;
}
5. 小程序页面间有哪些传递数据的方法
  • 使用全局变量实现数据传递 在 app.js 文件中定义全局变量 globalData, 将需要存储的信息存放在里面
// app.js
App({// 全局变量
globalData: {userInfo: null
}
})

使用的时候,直接使用 getApp() 拿到存储的信息

  • 使用 wx.navigateTowx.redirectTo 的时候,可以将部分数据放在 url 里面,并在新页面 onLoad 的时候初始化
//pageA.js
// Navigate
wx.navigateTo({url: '…/pageD/pageD?name=raymond&gender=male',
})// Redirect
wx.redirectTo({url: '…/pageD/pageD?name=raymond&gender=male',
})// pageB.js
...
Page({onLoad: function(option){console.log(option.name + 'is' + option.gender)
this.setData({option: option
})
}
})

需要注意的问题:

wx.navigateTowx.redirectTo 不允许跳转到 tab 所包含的页面

onLoad 只执行一次

  • 使用本地缓存 Storage 相关
6. 小程序的生命周期函数
  • onLoad 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数
  • onShow() 页面显示/切入前台时触发
  • onReady() 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互
  • onHide() 页面隐藏/切入后台时触发。 如 navigateTo 或底部 tab 切换到其他页面,小程序切入后台等
  • onUnload() 页面卸载时触发。如 redirectTonavigateBack 到其他页面时

详见 生命周期回调函数

7. 怎么封装微信小程序的数据请求

参考 这里

8. 哪些方法可以用来提高微信小程序的应用速度

1、提高页面加载速度

2、用户行为预测

3、减少默认 data 的大小

4、组件化方案

9. 微信小程序的优劣势

优势

  • 即用即走,不用安装,省流量,省安装时间,不占用桌面
  • 依托微信流量,天生推广传播优势
  • 开发成本比 App
  • 容易上手,只要之前有HTML+CSS+JS基础知识,写小程序基本上没有大问题;当然如果了解ES6+CSS3则完全可以编写出即精简又动感的小程序
  • 基本上不需要考虑兼容性问题,只要微信可以正常运行的机器,就可以运行小程序;
  • 基本组件库已经比较齐全:Toast,Loading框,Picker,定位及地图,Image,Input,Checkbox,Text,TextArea,ScrollView等常用的组件都有,而且使用也挺简单、方便;
  • 发布、审核高效,基本上上午发布审核,下午就审核通过,升级简单,而且支持灰度发布;
  • 微信官方提供使用人数、频率等数据统计,小程序js脚本执行错误日志;
  • 开发文档比较完善,开发社区比较活跃;
  • 最近刚开放的牛x功能,新增webview组件,可以展示网页啦,这个比较爽;
  • 支持插件式开发,一些基本功能可以开发成插件,供多个小程序调用;

缺点

  • 用户留存,即用即走是优势,也存在一些问题
  • 入口相对传统 App 要深很多
  • 限制较多,页面大小不能超过2M。不能打开超过10个层级的页面
10. 怎么解决小程序的异步请求问题

小程序支持大部分 ES6 语法

  • 在返回成功的回调里面处理逻辑
  • Promise 异步
11. 小程序关联微信公众号如何确定用户的唯一性

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 unionid 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 unionid 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid 是相同的

12. 如何实现下拉刷新
  • 首先在全局 config 中的 window 配置 enablePullDownRefresh
  • Page 中定义 onPullDownRefresh 钩子函数,到达下拉刷新条件后,该钩子函数执行,发起请求方法
  • 请求返回后,调用 wx.stopPullDownRefresh 停止下拉刷新

参考 这里

13. bindtap和catchtap的区别是什么

相同点:首先他们都是作为点击事件函数,就是点击时触发。在这个作用上他们是一样的,可以不做区分

不同点:他们的不同点主要是 bindtap 是不会阻止冒泡事件的,catchtap 是阻值冒泡的

14. 简述下 `wx.navigateTo()`, `wx.redirectTo()`, `wx.switchTab()`, `wx.navigateBack()`, `wx.reLaunch()`的区别
  • wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面
  • wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
  • wx.switchTab():跳转到 abBar 页面,并关闭其他所有非 tabBar 页面
  • wx.navigateBack()关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层
  • wx.reLaunch():关闭所有页面,打开到应用内的某个页面

前端面试题 微信小程序相关推荐

  1. 前端学习(1840):前端面试题之小程序入门

  2. 面试题微信小程序开发经验总结

    最近对微信小程序比较感兴趣,就上官网学习了一下,顺手做了一个java面试题小程序.在此总结一下微信小程序的开发流程和经验. 对微信小程序有兴趣的小伙伴可以去我的小程序看一下.我本人也工作快5年了,这个 ...

  3. 软件测试面试题微信小程序-IT界的驾考宝典

    软件测试面试题库微信小程序,IT界的驾考宝典.运行上线了. 从软件测试基础理论到自动化测试,接口测试,性能测试,功能测试,互联网大厂面试真题,HR面试小技巧,应有尽有 上线运行一个月刷题人数已经达十五 ...

  4. h5前端基础面试题(微信小程序)

    微信小程序基础面试题 1.微信小程序的优劣势? 优势: ①容易上手,基础组件库比较全,基本上不需要考虑兼容问题: ②开发文档比较完善,开发社区比较活跃,支持插件式开发: ③良好的用户体验:无需下载,通 ...

  5. 2021面试题——微信小程序面试题

    1.简单描述下微信小程序的相关文件类型 wxml模板文件:是框架设计的一套标签语言,结合基础组件,事件系统.可以构建出页面的结构: wxss样式文件:是一套样式语言,用于描述wxml的组合样式: js ...

  6. 小程序服务器搭建前后端交互,微信小程序:request前后端交互 路由跳转 存储数据到本地和获取 小程序登入 授权...

    一 request前后端交互 基本样式 wx.request({ url:'test.php', //仅为示例,并非真实的接口地址 data: { x:'', y:''}, header: {'con ...

  7. 微信小程序 App()方法与getApp()方法

    简介 App():注册一个小程序,小程序的入口方法 getApp():获取全局对象,然后进行全局变量和全局方法的使用 demo app.js App({onLaunch: function(optio ...

  8. 前端面试题整理 (ES6篇)

    分享一个前端面试题库小程序    MST题宝库 1.es5和es6的区别,说一下你所知道的es6 ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化 ECMA ...

  9. 2022 最新前端面试题汇总

    VUE面试题 1.v-show 和 v-if的区别,v-show 和 keep-alive 的区别 答案: v-show是 CSS display 控制显示和隐藏 v-if 是组件真正的渲染和销毁,而 ...

最新文章

  1. Mac-连接Windows远程桌面软件
  2. 通讯录管理系统(C语言)
  3. 代码没问题,请求无响应,超时
  4. 25 万行逆向源码遭下架!
  5. 华为服务器系统图标,华为云 服务器图标 visio
  6. UE4读写txt文本文件(虚幻4)
  7. smartbi服务器缓存文件,Smartbi Config页面介绍 - Smartbi V9 帮助文档
  8. 毕业相关-自动问答综述
  9. oracle 10g express linux,使用Oracle10g express 版本方案介绍
  10. matlab实现彩色图像的直方图均衡化
  11. Synopsys VCS仿真编译选项
  12. JVM中的对象探秘(三)- 对象的实例数据与对齐填充
  13. php就业薪资排名_山东第三季度就业难度指数报告:重工行业就业难
  14. Arduino温度报警
  15. malloc函数分配内存失败的原因及解决方法
  16. 二战漫画爬虫(爱漫画网)
  17. 【蓝桥杯】——DS18B20模块
  18. Java打印程序设计全攻略
  19. android微信开放平台,申请移动应用的应用签名如何获取
  20. arm linux g 找不到,/ bin / sh:1:arm-linux-gcc:在ubuntu上找不到

热门文章

  1. 图像浏览界面缩放和平移操作的实现
  2. python代码学习-数据处理图片加遮挡、噪声、模糊
  3. spark之12:集群模式概述
  4. 如何在hadoop中控制map的个数
  5. 浅谈Spring5 响应式编程
  6. Homebrew替换源
  7. Swoole 实现简单的路由
  8. linux下挂载ntfs(windows)文件系统
  9. 重构,重构,重构--代码,程序,包括思想
  10. PHP 做图片锐化处理