日常知识点复习(二)——微信小程序

450 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

大家好,我是不孤独的百年,最近接到了写小程序的任务,抓紧回忆回忆小程序的一些常见知识点,记性不好只能靠勤记录多复习~~

微信小程序原理

微信小程序采用Javascript 、WXML、WXSS三种技术进行开发,从技术讲和现有的前端开发差不多,但深入挖掘的话却又有所不同。

javascript:JavaScript的代码是运行在微信App中的,并不是运行在浏览器中,因此一些H5技术的应用,需要微信App提供对应的API支持,而这限制住了H5技术的应用,且其不能称为严格的H5,可以称其为伪H5,同理,微信提供的独有的某些API,H5也不支持或支持的不是特别好。

WXML:微信自己基于XML语法开发的,因此开发时,只能使用微信提供的现有标签,HTML的标签是无法使用的。

WXSS: WXSS具有css的大部分特性,但并不是所有的都支持,而且支持哪些,不支持哪些并没有详细的文档。

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

小程序分为两个部分webview和appservice。其中web view主要用来展现u工 , appser vice有来处理业务逻辑、数据及接调用。他们在两个进程中运行,通过系统层实现通信实现UI的渲染时间的处理。

简述下wx .navigateTo()wx.redirect To()wx.switchTab()wx.navigateBack()wx.reLaunch()的区别

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

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

  • wx.switchTab():跳转到abBar页面,并关闭其他所有非tabB a加页面

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

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

catchtap和bindtap的区别

相同点都是事件点击函数,点击触发的作用一样;

不同点是bindtap不会阻止冒泡事件,catchtap可以阻止事件冒泡;

下拉刷新的实现

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

提高小程序的应用速度

  • 提高页面加载速度

  • 减少默认data的大小

  • 组件化方案

  • 用户行为预测

小程序和H5的区别

  • 运行环境的不同 传统的HTML5的运行环境是浏览器,包括webview,而微信小程序的运行环境并非完整的浏览器,是微信开发团队基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,提升了小程序的性能。
  • 开发成本的不同

只在微信中运行,所以不用再去顾虑浏览器兼容吧性,不用担心生产环境中出现不可预料的奇妙

  • 获取系统级权限的不同 系统级权限都可以和微信小程序无缝衔接

  • 应用在生产环境的运行流畅度

长久以来,当HTML5应用面对复杂的业务逻辑或者丰富的页面交互时,它的体验总是不尽人意,需要不断的对项目优化来提升用户体验。但是由于微信小程序运行环境独立

参数传值

一、给HTML元素添加data-属性来传递我们需要的值,然后通过e-eur rentTarget.datasetonloadparam参数获取。但data-名称不能有大写字母以及不可以存放对象

二、设置id的方法标识来传值通过e.currentTarget.id获取设置的id的值,加群后通过设置全局对象的方式来传递数值

三、在navigator中添加参数传值