# 2305-applet **Repository Path**: miso-git/2305-applet ## Basic Information - **Project Name**: 2305-applet - **Description**: 2305-applet 2305-applet 2305-applet 2305-applet 2305-applet - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-09-27 - **Last Updated**: 2023-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1. Proxy 相比较与 Object.defineProperty 的优势在哪里? 1. Proxy 可以直接代理一整个对象,而无需像 defineProperty 那样循环劫持对象的每一个属性,能让组件的初始化更快 2. defineProperty 本身有局限, 1. 它无法劫持到对象属性的新增与删除 2. 它无法劫持到数组的针对下标来修改某一项 针对上面这两个点,Vue 需要额外提供 $set $delete 方法来实现劫持 3. 它无法劫持到数组的API方法的调用 针对这点,Vue 内部对数组7个方法做了重写 Proxy 没有这个局限 2. Vue3 中新增的 emits 选项的作用是啥? 与 props 选项类似,都是用于声明的操作 props选项,是声明组件的prop有哪些 emits选项,是声明组件会触发的自定义事件有哪些 emits声明之后,可以解决有一些自定义事件会被触发两次的问题 3. Teleport 组件的作用 1. Vue3 新增的一个内置组件 2. 特点是,将一些模板内容传送到它原本所在位置的外面去 3. 作用是,一般用于 Modal 组件,当组件层级很深时,外层元素可能会有一些样式会影响到 Modal 弹出层组件的样式,为了避免该问题,可以将 Modal的内容通过 Teleport 传送到 body 下去,让其不受其余样式的影响。 4. Vue3 新增的 expose 的作用是啥 1. 类似于 React 中 useImperaciveHandle 的作用 2. 用于控制组件对外的暴露,父组件通过 ref 模板引用该组件时获取到的内容就是 expose 暴露的内容 5. 小程序的登录【一键】流程 1. wx.login() 获取一个 code 2. wx.getUserInfo() 获取到用户的加密信息 3. 将 code 与 加密信息作为参数,调用后端的登录接口 4. 后端会使用 code + appid + appsecret 去调用 微信的 code2session 接口 5. 微信会返回,openid + session_key ,也可能会有一个 unionid 6. 后端会自定义登录态一般就是token,然后将token返回给前端 7. 前端接受到 token,写入 storage 中,后续请求需要携带 token 到请求头中 6. 小程序的支付流程 1. 用户下单 2. 调用后端提供的下单支付接口 2.1 后端会生成一个订单 2.2 后端会去调用 微信支付的 统一下单接口,得到预付单标识 2.3 后瑞会返回带有支付参数的内容给到前端 3. 前端获取到后端接口返回的支付参数 【时间戳、随机数、签名、签名类型、预付单标识】 4. 使用这些支付参数调用 wx.requestPayment() 方法,调出支付界面 4.1. 用户输入密码支付 5. wx.requestPayment() 在 success 成功的回调里面做支付成功的业务逻辑处理 6. wx.requestPayment() 在 fail 失败的回调里面做支付失败的业务逻辑处理 7. 小程序如何获取用户的手机号码 1. 使用 button 组件,设置 open-type 为 getPhoneNumber 2. 按钮点击,会弹窗授权窗,用户同意之后,就能在 bind:getphonenumber 事件处理函数中获取到手机号加密信息 encryptedData 与 iv 3. 将 加密信息传递给 后端做解密,就可以获取到手机号了。 PS: 最近好像这个又有改动,需要付费了,但是还没有看过。 8. 小程序消息订阅如何做 对于我们前端来说,主要是在某个时机调用下 wx.requestSubscribeMessage() 弹出订阅消息的申请弹窗即可。 9. 小程序优化怎么做? 1. 处理分包 2. 将本地图片资源上传到存储桶,使用网络资源,减少包体积 3. 合理定义数据,不需要引起页面更新的数据,不放置到 data 选项下 4. 合理调用 setData setData 是逻辑层向视图层的通信 5. 频繁事件可以直接交给 wxs 去使用。 ...