ArthurWangCN / notepad

reading notepad
0 stars 2 forks source link

小程序篇 #44

Open ArthurWangCN opened 1 year ago

ArthurWangCN commented 1 year ago

微信小程序主要目录和文件的作用

ArthurWangCN commented 1 year ago

wxml与标准的html的异同

ArthurWangCN commented 1 year ago

WXSS和CSS的异同

ArthurWangCN commented 1 year ago

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

  1. 在根目录下创建util目录及api.js文件和apiConfig.js文件
  2. 在apiConfig.js封装基础的get,post和put,upload等请求方法,设置请求体,带上token和异常处理等
  3. 在api.js中引入apiConfig.js封装好的请求方法.根据页面数据请求的urls,设置对应的方法并导出
  4. 在具体的页面中导入
ArthurWangCN commented 1 year ago

小程序的双向绑定和vue的异同

大体相同,但小程序之间this.data的属性是不可以同步到视图的,必须调用this.setData()方法

ArthurWangCN commented 1 year ago

小程序的生命周期函数

ArthurWangCN commented 1 year ago

简述微信小程序原理

ArthurWangCN commented 1 year ago

微信小程序的优劣势

优势:

劣势:

ArthurWangCN commented 1 year ago

微信小程序和H5的区别?

ArthurWangCN commented 1 year ago

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

使用wx.getUserlnfo方法 withCredentials为true时,可获取encryptedData,里面有union_id,后端需要进行对称解密

ArthurWangCN commented 1 year ago

微信小程序如何实现下拉刷新?

用view代替scroll-view,设置onPullDownRefresh函数实现

ArthurWangCN commented 1 year ago

bindtap和catchtap的区别?

bind事件绑定不会阻止冒泡事件向上冒泡 catch事件绑定可以阻止冒泡事件向上冒泡

ArthurWangCN commented 1 year ago

小程序的发布流程(开发流程)

  1. 注册微信小程序账号
  2. 获取微信小程序的AppID
  3. 下载微信小程序开发者工具
  4. 创建demo项目
  5. 去微信公众号配置域名
  6. 手机浏览
  7. 代码上传
  8. 提交审核
  9. 小程序发布
ArthurWangCN commented 1 year ago

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

首先,需要在你的html页面中引用一个js文件

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.0.js"></script>
//然后为你的按钮标签注册一个点击事件
$(".kaiqi").click(function(){
        wx.miniProgram.redirectTo({url: '/pages/indexTwo/indexTwo'})
});
// 这里的redirectTo跟小程序的wx.redirectTo()跳转页面是一样的,会关闭当前跳转到页面,换成navigateTo,跳转页面就不会关闭当前页面
ArthurWangCN commented 1 year ago

双线程模型

小程序的渲染层和逻辑层分别由2个线程管理:

视图层和逻辑层通过系统层的WeixinJsBridge进行通信:逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。

页面渲染的具体流程是: 在渲染层,宿主环境会把WXML转化成对应的JS对象,在逻辑层发生数据变更的时候,我们需要通过宿主环境提供的setData方法把数据从逻辑层传递到渲染层,再经过对比前后差异,把差异应用在原来的DOM树上,渲染出正确的UI界面。

双线程模型是小程序框架与页面大多数前端Web框架不同之处。基于这个模型,可以更好地管控以及提供更安全的环境。缺点是带来了无处不在的异步问题(任何数据传递都是线程间的通信,也就是都会有一定的延时),不过小程序在框架层面已经封装好了异步带来的时序问题。