总结分享一些基于小程序的面试题,让你面试稳操胜券!

本篇文章给大家总结分享一些基于小程序的面试题(附解析),让你面试稳操胜券,希望对大家有所帮助!

小程序登录流程

第一步:wx.login获取 用户临时登录凭证code

第二步:wx.getUserInfo获取加密过的数据encryptedData和解密参数iv

第三步:把步骤一、二中的code、encryptedData、iv传到开发者自己服务端 第四步:服务端获取到code、encryptedData、iv之后用get方法请求如下微信接口 个人项目,没有后端接口,回答了云开发中的登录流程

小程序页面声明周期

● onLoad() 页面加载时触发,只会调用一次,可获取当前页面路径中的参数。

● onShow() 页面显示/切入前台时触发,一般用来发送数据请求;

● onReady() 页面初次渲染完成时触发,只会调用一次,代表页面已可和视图层进行交互

● onHide() 页面隐藏/切入后台时触发,如底部 tab 切换到其他页面或小程序切入后台等

● onUnload() 页面卸载时触发,如 redirectTo 或 navigateBack 到其他页面时

小程序常用的框架

WeUI WeUI 是一套同微信原生视觉体验一致的基础样式库, 由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。 小程序开发中最常用到的一款框架,受广大开发人员的欢迎。 美团小程序框架mpvue 官方介绍:mpvue是一个使用 Vue.js开发小程序的前端框架。框架基于 Vue.js核心,mpvue修改了 Vue.js的 runtime和 compiler实现,使其可以运行在小程序环境中,从而为小程序开发引入了整套Vue.js开发体验。

组件化开发框架wepy 官方介绍:组件化开发,完美解决组件隔离,组件嵌套,组件通信等问题,支持使用第三方 npm 资源,自动处理 npm 资源之间的依赖关系,完美兼容所有无平台依赖的 npm 资源包. 官方框架MINA 官方介绍:框架提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,可以让开发者可以方便的聚焦于数据与逻辑上。

了解微信小程序吗?简述小程序的原理。

微信⼩程序采⽤JavaScript、WXML、WXSS三种技术进⾏开发,本质就是⼀个单⻚⾯应⽤,所有的⻚⾯渲染和事件处理,都在⼀个⻚⾯内进⾏,但⼜可以通过微信客户端调⽤原⽣的各种接⼝;

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

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

小程序项目的主要目录文件作用

project.config.json 项目的配置文件,做一些个性化配置,例如界面颜色、编译配置等等; app.json 当前小程序的全局配置,包括小程序的所有页面路径配置、界面表现、网络超时时间、底部tab等; sitemap.json 配置小程序及其页面是否允许被微信索引; pages 里面包含了一个个具体的页面; wxml (WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构 wxss (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件 样式 app.wxss作为全局样式,会作用于当前小程序的所有页面,局部页面样式 page.wxss仅对当前页面生效; app.js 小程序的逻辑 js 逻辑处理,网络请求 json 页面配置

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

小程序直接 this.data 的属性是不可以同步到视图的,必须调用: this.setData({ // 这里设置 })

小程序页面的生命周期函数

onLoad 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数(监听页面加载)

onShow() 页面显示/切入前台时触发(监听页面显示)

onReady() 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互(监听页面初次渲染完成)

onHide() 页面隐藏/切入后台时触发。 如 navigateTo 或底部 tab 切换到其他页面,小程序切入后台等(监听页面隐藏)

onUnload() 页面卸载时触发。如 redirectTo 或 navigateBack 到其他页面时(监听页面卸载)

微信小程序的优劣势

优势 : 即用即走,不用安装,省流量,省安装时间,不占用桌面 依托微信流量,天生推广传播优势 开发成本比 App 低 缺点 : 用户留存,即用即走是优势,也存在一些问题 入口相对传统 App 要深很多 限制较多 , 页面大小不能超过2M , 不能打开超过10个层级的页面

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

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

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

使用 @import 标识符来导入外联样式。@import 后跟需要导入的外联样式表的相对路径,用;表示语句结束

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

(1) 使用全局变量实现数据传递在 app.js 文件中定义全局变量 globalData , 将需要存储的信息存放在里面 使用的时候,直接使用 getApp() 拿到存储的信息

(2) 使用 wx.navigateTo 与 wx.redirectTo 的时候,可以将部分数据放在 url 里面,并在新页面 onLoad 的时候初始化 需要注意的问题: wx.navigateTo 和 wx.redirectTo 不允许跳转到 tab 所包含的页面 onLoad 只执行一次 (3) 使用本地缓存 Storage 相关

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

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

如何实现下拉刷新

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

bindtap和catchtap的区别是什么

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

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

‘wx.navigateTo()’, ‘wx.redirectTo()’,‘wx.switchTab()’, ‘wx.navigateBack()’,'wx.reLaunch()'的区别

wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面

wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面

wx.switchTab():跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

wx.navigateBack(): 关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层

wx.reLaunch():关闭所有页面,打开到应用内的某个页面

typeof 运算符和 instanceof 运算符以及 isPrototypeOf() 方法的区别

typeof是一个运算符,用于检测数据的类型,比如基本数据类型null、undefined、string、number、boolean, 以及引用数据类型object、function,但是对于正则表达式、日期、数组这些引用数据类型,它会全部识别为object;

instanceof同样也是一个运算符,它就能很好识别数据具体是哪一种引用类型。它与isPrototypeOf的区别就是 它是用来检测构造函数的原型是否存在于指定对象的原型链当中; 而isPrototypeOf是用来检测调用此方法的对象是否存在于指定对象的原型链中,所以本质上就是检测目标不同。

call()和apply()的区别

实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。 apply(this对象,[参数1,参数2,…]) 即使只有一个参数,也要写进数组里 call(this对象,参数1,参数2,…) 它可以接受多个任意参数,第一个参数与apply一样,后面则是一串参数列表

微信小程序怎样跟事件传值

给 HTML 元素添加 data-*属性来传递我们需要的值,然后通过 e.currentTarget.dataset 或 onload 的 param 参数获取。 但 data -名称不能有大写字母, 不可以存放对象

微信小程序与 vue 区别

• 生命周期不一样,微信小程序生命周期比较简单 • 数据绑定也不同,微信小程序数据绑定需要使用{{}},vue 直接 : 就可以 • 控制元素的显示和隐藏,小程序中,使用 wx-if 和 hidden 控制元素的显示和隐藏 ; vue 中,使用 v-if 和 v-show • 事件处理不同,小程序中,全用 bindtap(bind+event),或者catchtap(catch+event) 绑定事件,vue:使用 v-on:event 绑定事件,或者使用@event 绑定事件 • 数据双向绑定也不一样, 在 vue 中, 只需要在表单元素上加上 v-model, 然后再绑定 data 中对应的一个值,当表单元素内容发生变化 时,data 中对应的值也会相应改变,这是 vue 非常 nice 的一点。微信小程序必须获取到表单元素改变的值,然后再值赋给一个 data 中 声明的变量。

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

提高页面加载速度 用户行为预测 减少默认 data 的大小 组件化方案

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

小程序支持大部分 ES6 语法 • 在返回成功的回调里面处理逻辑 Promise 异步

小程序 wxml 与标准的 html 的异同?

相同: • 都是用来描述页面的结构; • 都由标签、属性等构成; 不同: • 标签名字不一样,且小程序标签更少,单一标签更多; • 多了一些 wx:if 这样的属性以及 {{ }}这样的表达式; • WXML 仅能在微信小程序开发者工具中预览,而 HTML 可以在浏览器内预 览; • 组件封装不同, WXML 对组件进行了重新封装; • 小程序运行在 JS Core 内,没有 DOM 树和 window 对象,小程序中无法使 用 window 对象和 document 对象。

小程序简单介绍下三种事件对象的属性列表?

基础事件(BaseEvent) • type:事件类型 • timeStamp:事件生成时的时间戳 • target:触发事件的组件的属性值集合 • currentTarget:当前组件的一些属性集合 自定义事件(CustomEvent) • detail 触摸事件(TouchEvent) • touches • changedTouches

小程序对 wx:if 和 hidden 使用的理解?

• wx:if 有更高的切换消耗。 • hidden 有更高的初始渲染消耗。 • 因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好

微信小程序与 H5 的区别

运行环境的不同 : 传统的 HTML5 的运行环境是浏览器,包括 webview,而微信小程序的运行环境并非完整的浏览器,是微信开发团队基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,提升了小程序的性能。 • 开发成本的不同 : 只在微信中运行,所以不用再去顾虑浏览器兼容性,不用担心生产环境中出现不可预料的奇妙 BUG • 获取系统级权限的不同

app.json 是对当前小程序的全局配置,讲述三个配置各个项的含义?

• pages 字段 —— 用于描述当前小程序所有页面路径,这是为了让 微信客户端知道当前你的小程序页面定义在哪个目录。 • window 字段 —— 小程序所有页面的顶部背景颜色, 文字颜色定义在这里的 • tab 字段 —— 小程序全局顶部或底部 tab

小程序 onPageScroll 方法的使用注意什么?

由于此方法调用频繁,不需要时可以去掉,不要保留空方法,并且使用 onPageScroll 时,尽量避免使用 setData(),尽量减少 setData()的使用频 次。

小程序视图渲染结束回调?

使用 setData(data, callback),在 callback 回调方法中添加后续操作代码

小程序同步 API 和异步 API 使用时注意事项?

wx.setStorageSync 是以 Sync 结尾的 API 为同步 API, 使用时使用 try-catch 来查看异常,如果判定 API 为异步,可以在其回调方法 success、fail、 complete 中进行下一步操作。

如何封装微信小程序的数据请求的?

1、将所有的接口放在统一的 js 文件中并导出。

2、在 app.js 中创建封装请求数据的方法。

3、在子页面中调用封装的方法请求数据。

小程序与原生 App 哪个好?

小程序除了拥有公众号的低开发成本、低获客成本低以及无需下载等优势,在 服务请求延时与用户使用体验是都得到了较大幅度 的提升, 使得其能够承载跟 复杂的服务功能以及使用户获得更好的用户体验。

webview 中的页面怎么跳回小程序中?

首先要引入最新版的 jweixin-x.x.x.js,然后

wx.miniProgram.navigateTo({
url: '/pages/login/login'+'$params'
})

webview 的页面怎么跳转到小程序导航的页面?

小程序导航的页面可以通过 switchTab,但默认情况是不会重新加载数据 的。若需加载新数据,则在 success 属性中加入以下代码即可:

小程序调用后台接口遇到哪些问题?

1、数据的大小有限制,超过范围会直接导致整个小程序崩溃,除非重启小程 序;

2、小程序不可以直接渲染文章内容页这类型的 html 文本内容,若需显示要借住插件,但插件渲染会导致页面加载变慢,所以最好在后台对文章内容的 html 进行过滤,后台直接处理批量替换 p 标签 div 标签为 view 标签,然后其它的标签让插件来做,减轻前端的时间

微信小程序的优劣势?

优势:

1、无需下载,通过搜索和扫一扫就可以打开。

2、良好的用户体验:打开速度快。

3、开发成本要比 App 要低。

4、安卓上可以添加到桌面,与原生 App 差不多。

5、为用户提供良好的安全保障。小程序的发布,微信拥有一套严格的审 查流程,不能通过审查的小程序是无法发布到线上的。

劣势:

1、限制较多。页面大小不能超过 1M。不能打开超过 5 个层级的页面。

2、样式单一。小程序的部分组件已经是成型的了,样式不可以修改。例 如:幻灯片、导航。

3、推广面窄,不能分享朋友圈,只能通过分享给朋友,附近小程序推 广。其中附近小程序也受到微信的限制。

4、依托于微信,无法开发后台管理功能。

【相关学习推荐:小程序开发教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


概述 消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。 订阅消息推送位置:服务通知 订阅消息下发条件:用户自主订阅 订阅消息卡片跳转能力:点击查看详情可提爱转至该小程序的页面 消息类型 一次性订阅消息 一次性订阅消息用于解决用户使用小程序后,后续服务
判断H5页面环境在微信中还是小程序中 用小程序提供的wx.miniProgram.getEnv可以获取环境参数 <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.
wx.reLaunch和wx.navigateTo,wx.navigateTo的区别 2019-03-23 11:18:05 wx.navigateTo 用于保留当前页面、跳转到应用内的某个页面,使用 wx.navigateBack可以返回到原页面。对于页面不是特别多的小程序,通常推荐使用 wx.n
微信小程序如何从数组里取值_微信小程序 传值取值的几种方法总结 小程序里常见的取值有以下几种,一个完整的项目写下来,用到的概率几乎是100%。 列表index下标取值 页面传值 form表单取值 1. 列表index下标取值 实现方式是:data-index="{{index}}&quot
H5项目接入微信授权登录,通过 UA 区分微信还是普通浏览器: let ua = navigator.userAgent.toLowerCase(); let isWeixin = ua.indexOf('micromessenge
微信小程序获取data-xx=""属性的值,自定义属性设置和获取(data-) 微信小程序<view class="details-btn" data-taskId="111" bindtap='taskdetails&#39
小程序报错:TypeError: Cannot read property ‘addEventListener‘ of undefined 解决办法 将调试基础库由2.16.0(或者当前的) -> 2.14.1 解决问题
H5跳转微信小程序-成功案例(VUE)(踩坑无数) TuoMei 已于 2022-07-29 09:52:22 修改 准备工作 根据官方提供的资料需准备以下几点: 1、已认证的服务号 2、绑定JS接口安全域名 (在微信公众平台设置) 3、IP白名单 (在微信公众平台设置) 4、将小程序和H5公众号进
微信小程序 页面跳转和数据传递实例详解 这篇文章主要介绍了微信小程序 页面跳转和数据传递实例详解的相关资料,这里附有实例代码帮助到家学习理解,需要的朋友可以参考下 微信小程序 页面跳转和数据传递 1.先导 在Android中,我们Activity和Fragment都有栈的概念在里面,微信小程序页面也
情景1.拉取公司代码演示: 因为github有墙,这里我们以gitee(码云)为例作为演示 (其实就是国产github,也非常好用~) 步骤一:打开Git界面 先在一个空文件夹右击Git Bash Here,打开git界面 步骤二:输入克隆远程仓库指令 别人复制的链接在这里获取 拿到别人赋值的链接自
如何开发微信小程序? 作为一名10多年一直从事互联网平台开发的从业者,我来回答下这个问题吧。 微信小程序开发流程总体可以归纳为4个步骤, 老张带您捋一捋整个环节,小白用户可以收藏了。 好了废话不多说,开始! 一、开发前小程序需要准备的资料 我们在开发微信小程序前,需要准备下相关资料。这个资料主要是后
原生小程序开发优化方案 为了更好的制定优化方案,我们 有必要先了解下小程序的底层架构、以及与普通网页开发的差异 小程序最终渲染载体与当下一些热门的技术 Flutter、React Native等不同,依然是浏览器内核,而不是原生客户端。 而对于传统的网页来说,UI 渲染和 JS 脚本是在同一个线程中
1,不要下两倍尺寸的图片, 小程序本身自己就会对元素缩小两倍,设计图片的一杯就已经很清晰了。 2,图片压缩,(主要是压缩静态资源,ps 可以压缩,然后有一些在线压缩工具,保持600-800kb 的静态) 3,通用的代码组件化 4,是在工程量太大可以分包,分包现在最大支持20m(一般都不会去分包的)
文章浏览阅读189次。人工智能研究实验室OpenAI在2022年11月30日发布了自然语言生成模型ChatGPT,上线两个月就已经超过一亿用户,成为了人工智能界当之无愧的超级大网红。ChatGPT凭借着自身强大的拟人化及时应答能力迅速破圈,引起了各行各业的热烈讨论。简单来说ChatGPT就是可以基于用户文本输入自动生成回答的人工智能聊天机器人。那肯定会有人说这不就是Siri嘛,虽然都是交互机器人但是两者的差别可老大了。那么ChatGPT在人机交互时为什么会有这么出色的表现?它到底会不会取代搜索引擎?90%的人真的会因为ChatG
文章浏览阅读193次。8. 导航和路由管理:掌握小程序的导航方式,如使用wx.navigateTo跳转页面、使用wx.redirect重定向页面等,学会实现页面之间的跳转和传参。1. 小程序的基本概念和架构:了解小程序的定义、特点以及与传统APP的区别,掌握小程序的运行环境、组件和API等基本概念。10. 支付功能:学习小程序的支付方式,如微信支付、支付宝支付等,了解支付流程和注意事项,学会实现小程序的支付功能。9. 用户授权和登录:了解小程序的用户授权机制,如获取用户信息、调用微信API等,学会实现用户的登录和注册功能。_微信小程序开发知识点总结
文章浏览阅读4.8k次,点赞7次,收藏18次。一、准备工作1. 安装微信开发者工具,并登录微信小程序账号;2. 准备斗地主游戏的图片资源;3. 准备斗地主游戏的音效资源;二、创建小程序1. 打开微信开发者工具,点击“新建小程序”,输入小程序名称,选择小程序的项目目录,点击“创建”;2. 在小程序的项目目录中,新建文件夹“images”,将准备好的斗地主游戏的图片资源放入“images”文件夹中;3. 在小程序的项目目录中,新建文件夹“sounds”,将准备好的斗地主游戏的音效资源放入“sounds”文件夹中;三、编写代码1. 在小程_扑克牌微信小程序代码
文章浏览阅读3.9k次,点赞3次,收藏7次。一、准备工作:1. 安装微信开发者工具,创建小程序项目;2. 准备游戏角色图片;3. 准备游戏背景音乐;二、实现步骤:1. 创建游戏页面,添加游戏角色图片,添加游戏背景音乐;2. 创建游戏角色类,定义游戏角色属性,如角色名称、角色图片、角色能力等;3. 创建游戏类,定义游戏属性,如游戏人数、游戏角色、游戏规则等;4. 创建游戏控制类,定义游戏流程,如游戏开始、游戏结束、游戏角色分配等;5. 创建游戏界面,实现游戏流程,如游戏开始、游戏结束、游戏角色分配等;6. 创建游戏结果页面,显示游戏_微信小程序游戏代码
文章浏览阅读1.7k次。1. 创建小程序项目:使用微信开发者工具创建一个小程序项目,并在项目中添加一个页面,用于模拟聊天。 2. 定义数据结构:定义一个数据结构,用于存储聊天记录,包括发送者、接收者、消息内容等信息。 3. 实现聊天功能:实现聊天功能,包括发送消息、接收消息、显示消息等功能。 4. 实现界面:使用微信小程序的界面框架,实现聊天界面,包括聊天记录列表、输入框等。代码示例:// 定义数据结构var chatData = { sender: '', receiver: '', message: '' };_制作聊天对话小程序代码
文章浏览阅读2.1k次。1、创建小程序项目:使用微信开发者工具,新建一个小程序项目,输入项目名称,选择项目目录,点击“创建”按钮,即可创建小程序项目。2、添加页面:在小程序项目中,可以添加多个页面,每个页面都有自己的页面文件,比如首页、分类页、购物车页、我的页面等。3、添加组件:在小程序项目中,可以添加多个组件,比如商品列表组件、购物车组件、订单组件等,用于在页面中显示商品信息、购物车信息、订单信息等。4、添加接口:在小程序项目中,可以添加多个接口,用于获取商品信息、购物车信息、订单信息等,以便在页面中显示。5、_微信开发者工具做一个我的商城