当前位置: 首页 > news >正文

uniapp renderjs 逻辑层,视图层互相传递数据封装

uniapp renderjs 逻辑层,视图层互相传递数据封装

<template><view class="content"><view :prop="sender" :change:prop="renderMaps.handleAction"><button @click="renderMaps.viewInit">向逻辑层发送数据</button><button @click="luoInif">向视图层发送数据</button><button @click="luojiFn">触发逻辑层的方法</button></view></view>
</template>
<!-- 逻辑层 -->
<script>
export default {data() {return {sender: {handle: "", //调用视图层方法的名字callback: "", //回调函数的名字options: null, //传递给视图层的数据rendCallback: "", //视图层的回调函数的名字(可选)暂时无用},}},created() {console.log(1)// 逻辑层向视图层传递数据this.sendMsg("init", "handleFeaturePopup", { id: 10 }, (e) => {console.log("视图层回调函数执行了,可以在这里做一些逻辑处理", e)})},mounted() {console.log(2)},methods: {/*** 视图层触发逻辑层方法 类似子传父* @param event callback 逻辑层的方法名称* @param event param 传递给逻辑层的数据*/handleItemClick(event) {const handle = this[event.callback]handle && handle(event.param)},/*** 逻辑层传递数据到视图层 类似父传子** @param handle 触发视图层的方法名称* @param callback 逻辑层的方法名称* @param options 消息发送的配置选项* @param rendCallback 逻辑层的回调函数(可选)暂时无用*/sendMsg(handle, callback, options, rendCallback) {this.sender = {handle,callback,options,rendCallback,}},handleFeaturePopup(options) {console.log("options:", options)console.log("逻辑层接受到了数据:", options)},luoInif() {this.sendMsg("init", "handleFeaturePopup", { id: 100 }, (e) => {console.log("视图层回调函数执行了,可以在这里做一些逻辑处理", e)})},},
}
</script>
<!-- 视图层 -->
<!-- <script> -->
<script module="renderMaps" lang="renderjs">
let map = null
export default {data() {return {//逻辑层的方法名称callback: "",}},mounted() {console.log(3)},created() {console.log(4)},methods: {//监听逻辑层传递过来的数据handleAction(newValue, oldValue, ownerInstance, instance) {console.log("逻辑层传递过来的数据", newValue)const handle = this[newValue.handle]let options = newValue.options//保存逻辑层的方法名称this.callback = newValue.callbackif (!options) {options = undefined}if (!handle) {console.info("参数为标记需要执行的方法")return}handle(options, newValue?.rendCallback)},init(options, fn) {console.log("视图层接受到数据了")// 回调fn("11")},viewInit() {console.log("视图层向逻辑层发送数据-------------------------------------------")this.$ownerInstance.callMethod("handleItemClick", {callback: "handleFeaturePopup",param: {name: "李四",age:11,},})},luojiFn(){console.log("this.callback:",this.callback);this.$ownerInstance.callMethod("handleItemClick", {callback: this.callback,param: {name: "李四11",age:11,},})}},
}
</script>
<style lang="scss" scoped></style>
http://www.dtcms.com/a/315646.html

相关文章:

  • 星图云开发者平台赋能商储油安全管控数字化转型
  • 漏洞分析:90分钟安全革命
  • NLP自然语言处理 03 Transformer架构
  • 基于 FFmpeg 与 V4L2 的多路摄像头视频采集,图像处理处理与 RTMP 推流项目(开源)
  • GPU 基础矩阵精规组织教程:从基础作用到实战应用
  • EAGLE-2:通过动态草稿树加速语言模型推理
  • 国内办公安全平台新标杆:iOA一体化办公安全解决方案
  • 用 PyTorch 实现一个简单的神经网络:从数据到预测
  • Tdengine 时序库年月日小时分组汇总问题
  • EP01:【DL 第二弹】张量(Tensor)的创建和常用方法
  • 利用DeepSeek编写带缓冲输出的V语言程序
  • centos通过DockerCompose搭建开源MediaCMS
  • 信息收集--基础篇
  • 高效稳定:Spring Boot集成腾讯云OSS实现大文件分片上传与全路径获取
  • systemui 的启动流程是怎么样的?
  • 深入浅出 RabbitMQ-交换机详解与发布订阅模型实战
  • 软件版本、Nodejs中 ~、*、^
  • centos7 个人网站搭建之gitlab私有化部署实现线上发布
  • 鸿蒙OS 系统安全
  • 14.Linux : nfs与autofs的使用
  • 计算机基础速通--数据结构·栈与队列应用
  • 国内外大模型体验与评测技术
  • 安科瑞智慧能源管理系统在啤酒厂5MW分布式光伏防逆流控制实践
  • 【深度学习新浪潮】混元3D是什么产品?
  • 大模型之后,机器人正在等待它的“GPT-1 时刻”
  • BOM Cookie操作详解
  • 基于Halcon 3D的手眼标定方法
  • Kafka自动消费消息软件(自动化测试Kafka)
  • OneCode 3.0 前端架构全面研究
  • xxl-job配置相同,执行顺序