Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 161|回复: 0
打印 上一主题 下一主题

从理论到实践:在 Magento 2 中使用部分 [第 2 部分]

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
跳转到指定楼层
楼主
发表于 2023-8-30 12:26:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上次我们讨论了 Magento 2 UI 组件。实际上,Magento 2 还有一项新功能,即sections ,我们今天将重点介绍它。它们的目的是在客户端和 Web 服务器之间同步数据,以使其始终保持最新。为了说明部分如何工作以及如何在 Magento 2 中使用它们,让我们考虑 Magento 2 标准模块 - Magento_Checkout的示例。 您的 Magento 需要一些自定义功能吗? 留下您的请求,我们的经理将与您联系,讨论我们如何帮助您。 电子邮件 留下请求 Magento 2 中的部分和 本地存储 由于 Magento 2 严重依赖localStorage ,因此他们添加了一个名为CustomerData的新实体,以确保该属性顺利工作。 您可以在这里阅读更多相关信息。 CustomerData使用存储在客户端的数据。Magento 2 部分是客户数据的合并部分。它们允许通过与网络服务器同步来使这些数据保持最新。

类在服务器端初始化。这些类中的每一个都包含方法getSectionData的定义,该方法初始化section的值。 在客户端初始化部分 还有其他  方法来初始化节。例如,在客户端,它们可以在客户数据适配器的帮助下进行初始化。要在客户端  英国电话号码清单  创建  客户部分 ,您还必须向 di.xml 添加定义。 供应商 。与之前的方法不同之处在于初始化方式。 参数名称clientSideSections 向 Magento 表明初始化应该在客户端进行。这意味着初始化需要与节初始化数据相关的缓存键,而不是 PHP 类。 在我们的示例中,我们使用键checkout-data和cart-data 。同时,密钥请求的数据由客户数据适配器创建。从技术上讲,这些适配器是 js 模块,它们首先定义处理客户数据的方法,其次定义用于调用这些数据的cacheKey的名称。 在 Magento 2 中定义节的示例 让我们考虑使用Magento_Checkout模块中的cart-data 部分示例的部分定义。



正如我们上面提到的,它 是在 di.xml 中定义的。此定义使用cart-data键在magento-cache-storage中创建一个部分。它的名称是用<item>标记的属性名称定义的。 要初始化cart-data ,请定义 <item>标签值并指定 引用magento-cache-storage中数据的cacheKey 。 供应商/magento/module-checkout/etc/frontend/di.xml 数据本身是由 js 模块Magento_Checkout/js/model/cart/cache通过 key cart-data创建的。作为客户数据适配器,该模块包含用于处理客户数据的方法,并将?acheKey值定义为购物车数据。初始化购物车数据后,我们得到以下结果: PUT 和 POST 请求允许更改客户数据的值。我们可以使用etc/sections.xml文件定义将更改特定部分的请求。更新如下所示: 供应商标记的值显示请求将如何影响 购物车 部分。请求 到达控制器 ( 后,购物车 部分将获得一个新值。如果我们将操作设置为“ * ”,则所有 PUT 和 POST 请求都会更改该部分。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.  

GMT+8, 2024-5-4 07:23 , Processed in 0.036532 second(s), 14 queries , Apc On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表