网站制作中文版wordpress放广告

news/2025/10/6 21:05:08/文章来源:
网站制作中文版,wordpress放广告,360门户网站怎样做,无锡网站建设seo戳蓝字“CSDN云计算”关注我们哦#xff01;作者 | 成全责编 | 阿秃转自 | 美团技术团队企业博客前言mpvue是一款使用Vue.js开发微信小程序的前端框架。使用此框架#xff0c;开发者将得到完整的 Vue.js 开发体验#xff0c;同时为H5和小程序提供了代码复用的能力。如果想将… 戳蓝字“CSDN云计算”关注我们哦作者 | 成全责编 | 阿秃转自 | 美团技术团队企业博客前言mpvue是一款使用Vue.js开发微信小程序的前端框架。使用此框架开发者将得到完整的 Vue.js 开发体验同时为H5和小程序提供了代码复用的能力。如果想将 H5 项目改造为小程序或开发小程序后希望将其转换为H5mpvue将是十分契合的一种解决方案。目前mpvue已经在美团点评多个实际业务项目中得到了验证因此我们决定将其开源希望更多技术同行一起开发应用到更广泛的场景里去。github项目地址请参见mpvue 。使用文档请参见 http://mpvue.com/。为了帮助大家更好的理解mpvue的架构接下来我们来解析框架的设计和实现思路。文中主要内容已经发表在《程序员》杂志2017年第9期小程序专题封面报道内容略有修改。小程序开发特点微信小程序推荐简洁的开发方式通过多页面聚合完成轻量的产品功能。小程序以离线包方式下载到本地通过微信客户端载入和启动开发规范简洁技术封装彻底自成开发体系有Native和H5的影子但又绝不雷同。小程序本身定位为一个简单的逻辑视图层框架官方并不推荐用来开发复杂应用但业务需求却难以做到精简。复杂的应用对开发方式有较高的要求如组件和模块化、自动构建和集成、代码复用和开发效率等但小程序开发规范较大的限制了这部分能力。为了解决上述问题提供更好的开发体验我们创造了mpvue通过使用Vue.js来开发微信小程序。mpvue是什么mpvue是一套定位于开发小程序的前端开发框架其核心目标是提高开发效率增强开发体验。使用该框架开发者只需初步了解小程序开发规范、熟悉Vue.js基本语法即可上手。框架提供了完整的 Vue.js 开发体验开发者编写Vue.js代码mpvue 将其解析转换为小程序并确保其正确运行。此外框架还通过 vue-cli 工具向开发者提供quick start 示例代码开发者只需执行一条简单命令即可获得可运行的项目。为什么做mpvue在小程序内测之初我们计划快速迭代出一款对标 H5 的产品实现核心诉求是快速实现、代码复用、低成本和高效率… 随后经历了多个小程序建设结合业务场景、技术选型和小程序开发方式我们整理汇总出了开发阶段面临的主要问题组件化机制不够完善代码多端复用能力欠缺小程序框架和团队技术栈无法有机结合小程序学习成本不够低组件机制小程序逻辑和视图层代码彼此分离公共组件提取后无法聚合为单文件入口组件需分别在视图层和逻辑层引入维护性差组件无命名空间机制事件回调必须设置为全局函数组件设计有命名冲突的风险数据封装不强。开发者需要友好的代码组织方式通过 ES 模块一次性导入组件数据有良好的封装。成熟的组件机制对工程化开发至关重要。多端复用常见的业务场景有两类通过已有 H5 产品改造为小程序应用或反之。从效率角度出发开发者希望通过复用代码完成开发但小程序开发框架却无法做到。我们尝试过通过静态代码分析将 H5 代码转换为小程序但只做了视图层转换无法带来更多收益。多端代码复用需要更成熟的解决方案。引入 Vue.js小程序开发方式与 H5 近似因此我们考虑和 H5 做代码复用。沿袭团队技术栈选型我们将 Vue.js 确定为小程序开发规范。使用 Vue.js 开发小程序将直接带来如下开发效率提升H5 代码可以通过最小修改复用到小程序使用 Vue.js 组件机制开发小程序可实现小程序和 H5 组件复用技术栈统一后小程序学习成本降低开发者从 H5 转换到小程序不需要更多学习Vue.js 代码可以让所有前端直接参与开发维护为什么是 Vue.js这取决于团队技术栈选型引入新的选型与统一技术栈和提高开发效率相悖有违开发工具服务业务的初衷。mpvue 的演进mpvue的形成来源于业务场景和需求最终方案的确定经历了三个阶段。第一阶段我们实现了一个视图层代码转换工具旨在提高代码首次开发效率。通过将H5视图层代码转换为小程序代码包括 HTML 标签映射、Vue.js 模板和样式转换在此目标代码上进行二次开发。我们做到了有限的代码复用但组件化开发和小程序学习成本并未得到有效改善。第二阶段我们着眼于完善代码组件化机制。参照 Vue.js 组件规范设计了代码组织形式通过代码转换工具将代码解析为小程序。转换工具主要解决组件间数据同步、生命周期关联和命名空间问题。最终我们实现了一个 Vue.js 语法子集但想要实现更多特性或跟随 Vue.js 版本迭代工作量变得难以估计有永无止境之感。第三阶段我们的目标是实现对 Vue.js 语法全集的支持达到使用 Vue.js 开发小程序的目的。并通过引入 Vue.js runtime 实现了对 Vue.js 语法的支持从而避免了人肉语法适配。至此我们完成了使用 Vue.js 开发小程序的目的。较好地实现了技术栈统一、组件化开发、多端代码复用、降低学习成本和提高开发效率的目标。mpvue设计思路Vue.js 和小程序都是典型的逻辑视图层框架逻辑层和视图层之间的工作方式为数据变更驱动视图更新视图交互触发事件事件响应函数修改数据再次触发视图更新如图1所示。图1小程序实现原理鉴于 Vue.js 和小程序一致的工作原理我们思考将小程序的功能托管给 Vue.js在正确的时机将数据变更同步到小程序从而达到开发小程序的目的。这样我们可以将精力聚焦在 Vue.js 上参照 Vue.js 编写与之对应的小程序代码小程序负责视图层展示所有业务逻辑收敛到 Vue.js 中Vue.js 数据变更后同步到小程序如图2所示。如此一来我们就获得了以 Vue.js 的方式开发小程序的能力。为此我们设计的方案如下图2mpvue 实现原理Vue代码- 将小程序页面编写为 Vue.js 实现- 以 Vue.js 开发规范实现父子组件关联小程序代码- 以小程序开发规范编写视图层模板- 配置生命周期函数关联数据更新调用- 将 Vue.js 数据映射为小程序数据模型并在此基础上附加如下机制- Vue.js 实例与小程序 Page 实例建立关联- 小程序和 Vue.js 生命周期建立映射关系能在小程序生命周期中触发 Vue.js 生命周期- 小程序事件建立代理机制在事件代理函数中触发与之对应的 Vue.js 组件事件响应这套机制总结起来非常简单但实现却相当复杂。在揭秘具体实现之前读者可能会有这样一些疑问要同时维护 Vue.js 和小程序是否需要写两个版本的代码实现?小程序负责视图层展现Vue.js的视图层是否还需要如果不需要应该如何处理?生命周期如何打通数据同步更新如何实现?上述问题包含了 mpvue 框架的核心内容下文将仔细为你道来。首先mpvue 为提高效率而生本身提供了自动生成小程序代码的能力小程序代码根据 Vue.js 代码构建得到并不需要同时开发两套代码。Vue.js 视图层渲染由 render 方法完成同时在内存中维护着一份虚拟 DOMmpvue 无需使用 Vue.js 完成视图层渲染因此我们改造了 render 方法禁止视图层渲染。熟悉源代码的读者都知道 Vue runtime 有多个平台的实现除了我们常见的 Web 平台还有 Weex。从现在开始我们增加了新的平台 mpvue。生命周期关联生命周期和数据同步是 mpvue 框架的灵魂Vue.js 和小程序的数据彼此隔离各自有不同的更新机制。mpvue 从生命周期和事件回调函数切入在 Vue.js 触发数据更新时实现数据同步。小程序通过视图层呈现给用户、通过事件响应用户交互Vue.js 在后台维护着数据变更和逻辑。可以看到数据更新发端于小程序处理自 Vue.jsVue.js 数据变更后再同步到小程序。为实现数据同步mpvue 修改了 Vue.js runtime 实现在 Vue.js 的生命周期中增加了更新小程序数据的逻辑。事件代理机制用户交互触发的数据更新通过事件代理机制完成。在 Vue.js 代码中事件响应函数对应到组件的 method Vue.js 自动维护了上下文环境。然而在小程序中并没有类似的机制又因为 Vue.js 执行环境中维护着一份实时的虚拟 DOM这与小程序的视图层完全对应我们思考在小程序组件节点上触发事件后只要找到虚拟 DOM 上对应的节点触发对应的事件不就完成了么另一方面Vue.js 事件响应如果触发了数据更新其生命周期函数更新将自动触发在此函数上同步更新小程序数据数据同步也就实现了。mpvue如何使用mpvue框架本身由多个npm模块构成入口模块已经处理好依赖关系开发者只需要执行如下代码即可完成本地项目创建。# 安装 vue-cli $ npm install --global vue-cli # 根据模板项目创建本地项目目前为内网地址 $ vue init ‘bitbucket:xxx.meituan. comhfe/mpvue-quickstart’ --clone my- project # 安装依赖和启动自动构建 $ cd my-project $ npm install $ npm run dev执行完上述命令在当前项目的 dist 子目录将构建出小程序目标代码使用小程序开发者工具载入 dist 目录即可启动本地调试和预览。示例项目遵循 Vue.js 模板项目规范通过Vue.js 命令行工具vue-cli创建。代码组织形式与 Vue.js 官方实例保持一致我们为小程序定制了 Vue.js runtime 和 webpack 加载器此部分依赖也已经内置到项目中。针对小程序开发中常见的两类代码复用场景mpvue 框架为开发者提供了解决思路和技术支持开发者只需要在此指导下进行项目配置和改造。我们内部实践了一个将 H5 转换为小程序的项目下图为使用 mpvue 框架的转换效果图3H5 和小程序转换效果将小程序转换为H5直接使用 Vue.js 规范开发小程序代码本身与H5并无不同具体代码差异会集中在平台 Api 部分。此外并不需明显改动改造主要分如下几部分将小程序平台的 Vue.js 框架替换为标准 Vue.js将小程序平台的 vue-loader 加载器替换为标准 vue-loader适配和改造小程序与 H5 的底层 Api 差异将H5转换为小程序已经使用 Vue.js 开发完 H5我们需要做的事情如下将标准 Vue.js 替换为小程序平台的 Vue.js 框架将标准 vue-loader 加载器替换为小程序平台的 vue-loader适配和改造小程序与 H5 的底层 Api 差异根据小程序开发平台提供的能力我们最大程度的支持了 Vue.js 语法特性但部分功能现阶段暂时尚未实现。表1mpvue 暂不支持的语法特性项目转换注意事项框架的目标是将小程序和 H5 的开发方式通过 Vue.js 建立关联达到最大程度的代码复用。但由于平台差异的客观存在主要集中在实现机制、底层Api 能力差异我们无法做到代码 100% 复用平台差异部分的改造成本无法避免。对于代码复用的场景开发者需要重点思考如下问题并做好准备尽量使用平台无的语法特性这部分特性无需转换和适配成本避免使用不支持的语法特性譬如 slot filter 等降低改造成本如果使用特定平台 Api 考虑抽象好适配层接口通过切换底层实现完成平台转换mpvue 最佳实践在表2中我们对微信小程序、mpvue、WePY 这三个开发框架的主要能力和特点做了横向对比帮助大家了解不同框架的侧重点结合业务场景和开发习惯确定技术方案。对于如何更好地使用 mpvue 进行小程序开发我们总结了一些最佳实践。使用 vue-cli 命令行工具创建项目使用Vue 2.x 的语法规范进行开发避免使用框架不支持的语法特性部分 Vue.js语法在小程序中无法使用尽量使用 mpvue 和 Vue.js 共有特性合理设计数据模型对数据的更新和操作做到细粒度控制避免性能问题合理使用组件化开发小程序提高代码复用率表2框架使用特点对比结语mpvue 框架已经在业务项目中得到实践和验证目前正在美团点评内部大范围使用。mpvue 来源于开源社区饮水思源我们也希望为开源社区贡献一份力量为广大小程序开发者提供一套技术方案。mpvue 的初衷是让 Vue.js 的开发者以低成本接入小程序开发做到代码的低成本迁移和复用我们未来会继续扩展现有能力、解决开发者的诉求、优化使用体验、完善周边生态建设帮助到更多的开发者。最后mpvue 基于 Vue.js 源码进行二次开发新增加了小程序平台的实现我们保留了跟随 Vue.js 版本升级的能力由衷的感谢 Vue.js 框架和微信小程序给业界带来的便利。福利扫描添加小编微信备注“姓名公司职位”入驻【CSDN博客】加入【云计算学习交流群】和志同道合的朋友们共同打卡学习推荐阅读【小白集合】详解服务器内存和显存基础知识【忽悠面试官就靠它了】『Spring事务管理器』源码阅读梳理如何破解焦虑成为技术大牛资深技术 Leader 肺腑忠告快手王华彦端上视觉技术的极致效率及其短视频应用实践 | AI ProCon 2019每个新手程序员都应该知道的Python开发技巧5G来了智能手机们还能拼什么揭秘“链上FBI”Chainalysis如何追踪暗网交易真香朕在看了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:SCDN如何同时保障网站加速与DDoS防御?

实用指南:SCDN如何同时保障网站加速与DDoS防御?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

二分查找模板:基础二分与进阶二分

二分查找模板:基础二分与进阶二分 本人在学习到 @灵茶山艾府 的二分查找专题时,收获颇多,故借助大模型记录一些学习心得。 根据目标不同,二分查找可以分为 基础二分(情况1:查找任意一个目标值)和 进阶二分(查找…

【设计模式-4.5】行为型——迭代器模式 - 教程

【设计模式-4.5】行为型——迭代器模式 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

阿里云centos7做网站免费psd模板网站

win7输入密码界面背景怎么更改?win7开机的登录密码界面想要换张图不晓得如何改,下面是小编介绍win7登录界面换背景的技巧,有需要的小伙伴一起来下文看看吧,希望可以帮助到大家! win7输入密码界面背景怎么更改 按windowss键R键打开运行&…

运动鞋建设网站前的市场分析企业免费oa管理系统

系统架构 Flink运行时架构Standalone会话模式为例 1)作业管理器(JobManager) JobManager 是一个 Flink 集群中任务管理和调度的核心,是控制应用执行的主进程。每个应用都应该被唯一的 JobManager 所控制执行。 JobManger 又包含…

浅谈并查集

带权并查集 Luogu P2024 经典例题食物链。 题意:\(n\) 个动物,可能是三个物种之一,给出若干描述,形如两个动物是同类或是吃与被吃的关系,确定出矛盾的描述。 考虑建图,有边相连代表确定一个确定另一个关系,这是…

SP6950 CTOI10D3 - A HUGE TOWER 题解

按照 $ h $ 降序依次放每个积木,此时如果有 \(2\) 块积木,那么一定满足条件。因为 \(h_{\text{now}} - h_{\text{pre}} \leq 0 \leq D\)。 继续往下想,再加一块,也要满足 $ h_{\text{next}} - h_{\text{now}} \le…

如何免费搭建网站wordpress安装完怎么恢复数据

引用 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

Kubernetes 定时备份etcd数据

Kubernetes 定时备份etcd数据Posted on 2025-10-06 20:54 清欢也野 阅读(0) 评论(0) 收藏 举报个人笔记、与各位的环境不同、自行修改 编写dockfile镜像 1、首先我利用的是k8s自带的基础容器镜像 [root@qinghuany…

蒲县网站建设长沙中小企业做网站

1.简介 1.1单例模式 C单例模式被广泛应用于需要全局唯一实例的场景。以下是一些常见的使用场景: 日志记录器 在大多数应用程序中,需要一个全局的日志记录器来记录系统运行时的事件和错误。使用单例模式可以确保只有一个日志记录器实例,并能…

16_AiAgentMCP简单教程

ai mcp AI Agent与MCP简单教程:从入门到实践 总起:开启AI Agent与MCP之旅 什么是AI Agent? AI Agent(人工智能代理)是能够自主感知环境、做出决策并执行行动的智能实体。与传统的被动式AI不同,AI Agent具有主动性…

17_AiAgentMCP实现技术选型

ai mcp AI Agent与MCP实现技术选型:全面指南与最佳实践 总起:技术选型的重要性与挑战 为什么MCP技术选型至关重要? 在AI Agent快速发展的时代,Model Context Protocol(MCP)作为连接AI模型与外部资源的关键桥梁,…

谷歌chrome浏览器优化网络搜索引擎

def 将一个列表中的几个字典改成二维列表(original_list,headersToRemove_list):# 初始化一个列表用于存储遇到的键,保持顺序ordered_keys []# 遍历data中的每个字典,添加其键到ordered_keys,如果该键还未被添加for d in original_list:for …

JVM_XMS 和 java_opts哪种写法对?如何在JVM中设置JVM_XMS和java_opts?

JVM_XMS 和 java_opts哪种写法对? JVM_XMS与JAVA_OPTS是两种不同的JVM参数设置方式,具体写法需根据使用场景选择: JVM_XMS(初始堆大小)‌写法‌::ml-search-more[-Xms]{text="-Xms"}(如-Xms512m) ‌…

百度网盘做存储网站上海百度搜索优化

我一直在探索PPT中平滑切换的应用。这篇文章感觉算是探索到头了。之前的文章中,曾经提到过平滑切换可以让3D模型动起来。但是在实际应用中,能够供PPT使用的3D素材数量有限,难以准确契合我们的需求。后来我发现,只需要1张普通图片&…

鸿蒙编译ffmpeg库 - 详解

鸿蒙编译ffmpeg库 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

网站描述怎么设置网站上线后的工作

解决方法就是: from django.urls import reverse 最近从django1.9迁移到django2.0中出现一个意外的报错: 这个报错的原因在stack overflow上有很直接的解释,但是百度上并没有直接的答案。 简单来说,原因就是:django2.0 把原来…

宁乡县住房和城乡建设局网站扒网站样式

来源:《科学哲学的历史导论》、思庐哲学(siluphilosophy)作者:约翰洛西对正统学说的诸多批评有一种累积的效果。许多科学哲学家渐渐认为,用形式逻辑范畴来重建科学时会失去一些至关重要的东西。在他们看来,…

知道却做不到

这种“知道步骤但写不出来”的情况非常常见,核心原因是对“类的参数设计”和“类之间的协作关系”还没有形成清晰的逻辑链。其实参数设计有明确的规律——每个类的参数都应该服务于它的“核心职责”。我们用“从职责倒…

题解:loj154 集合划分计数

题意:给出一个大小为 \(n\) 的全集 \(A = \{1,2,\cdots n\}\),再给出 \(m\) 个集 \(S_1,S_2\cdots S_m\),要求从这些集里选出至多 \(k\) 个,满足 \(S\) 间没有交集且并集是全集,\(k\le n\le 21,m\le 262144\)。 做…