热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

react组件开发_使用React和CosmicJSCMS进行基于组件的网站开发

react组件开发网站开发的一种常见方法是构建可在不同网页上重复使用的组件。这种方法的好处是,通过管理组件而不是管理不同页面上的重复内容,您最终减少了重

react 组件开发

网站开发的一种常见方法是构建可在不同网页上重复使用的组件。 这种方法的好处是,通过管理组件而不是管理不同页面上的重复内容,您最终减少了重复工作。 流行Javascript框架(例如React,Vue和Angular)在应用程序代码级别利用此概念取得了很大的成功。 我们如何从内容管理级别的这种方法中受益?

在本教程中,我将向您展示如何使用React和Cosmic JS CMS构建基于组件的网站。 目的是节省开发人员和内容管理员的时间,并提供可扩展的内容模型。

建立内容模型

*先决条件:本文假设您已了解Cosmic JS概念:对象类型,对象和元字段。 如果您需要重温这些概念,请转到“ 入门指南” 。

使用Cosmic JS对象类型和元字段,我们可以创建可在网站页面上使用的可组合组件。 对于我们的示例,我们将创建三种对象类型:

  1. 页数
  2. 节(页面中使用的组件)
  3. 团队成员(在“团队”部分中使用)

让我们看一下每种对象类型:

页数

所有页面将包括以下内容:

  1. 标题(文字)
  2. 内容(HTML Textarea)
  3. 节(多个对象关系元字段)

多个对象关系元字段将用于管理页面节。

团队成员

元字段:

  1. 名称(文本元字段)
  2. 图像(文件元字段)
  3. 引用(纯文本区域元字段)

栏目

Sections对象类型将更加动态,并允许使用不同的元字段。

队部

元字段:

  1. 标题
  2. 多对象关系元字段(团队)
  • 名称
  • 图片
  • 引用

添加您的团队成员:

注册部分
元字段:

  1. 标题(文本元字段)
  2. 图像(文件元字段)
  3. 内容(HTML元字段)
  4. CTA(文本元字段)

将部分添加到页面

既然我们已经设置了板块,我们可以将它们添加到页面中:

编码

现在我们已经保存了内容,让我们进行一些编码。 下载React启动器 :

gitclone https ://github.com/cosmicjs/react-starter

现在进入Page组件并对其进行编辑,如下所示:

// page.js
import SectionList from './section-list'
export default ({ page }) => (

{page.title}


)

如您所见,我们在Page对象上添加了Section List。 我们的“节列表”和“节”组件如下所示:

// section-list.js
import TeamSection from './sections/team'
import SignupSection from './sections/signup'
export default ({ sections }) => (

{sections.map(section => {if (section.metadata.team)return if (section.metadata.cta)return })}

)

// signup.js
export default ({ section }) => (

{section.metadata.headline}


)

// team.js
export default ({ section }) => (

{section.metadata.headline}

{section.metadata.team.map(person => {return (
{person.metadata.name}
{person.metadata.quote}
)})}

)

Section组件的输出由通过section prop传递的数据确定。

结论

Cosmic JS CMS是构建基于组件的网站的绝佳解决方案。 在我们的示例中,我们创建了一个页面对象,该页面对象具有连接到Sections对象类型的Multiple Object Metafield,以添加我们的Section组件。 这种方法的好处在于,我们现在可以在一个地方管理节内容,并且可以跨页面重用它,而不必进入每个页面来编辑重复数据。

希望您觉得这有用。 如果您还有其他疑问,请在Slack上加入我们的社区,并在Twitter上与我们联系。

兰斯·安德森 ( Lance Anderson)在Unsplash上拍摄的照片

翻译自: https://hackernoon.com/component-based-website-development-with-react-and-the-cosmic-js-cms-828213d48656

react 组件开发



推荐阅读
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • Vue3中setup函数的参数props和context配置详解
    本文详细介绍了Vue3中setup函数的参数props和context的配置方法,包括props的接收和配置声明,以及未通过props进行接收配置时的输出值。同时还介绍了父组件传递给子组件的值和模板的相关内容。阅读本文后,读者将对Vue3中setup函数的参数props和context的配置有更深入的理解。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了如何按需加载elementui的部分模块,以及如何设置覆盖某些属性。通过import引入Dialog模块,并使用Vue.component进行全局设置。同时使用Vue.use引入ElementUI和VueAxios模块。通过extends进行属性覆盖设置。 ... [详细]
  • 本文介绍了如何使用elementui分页组件进行分页功能的改写,只需一行代码即可调用。通过封装分页组件,避免在每个页面都写跳转请求的重复代码。详细的代码示例和使用方法在正文中给出。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • 本文介绍了自学Vue的第01天的内容,包括学习目标、学习资料的收集和学习方法的选择。作者解释了为什么要学习Vue以及选择Vue的原因,包括完善的中文文档、较低的学习曲线、使用人数众多等。作者还列举了自己选择的学习资料,包括全新vue2.5核心技术全方位讲解+实战精讲教程、全新vue2.5项目实战全家桶单页面仿京东电商等。最后,作者提出了学习方法,包括简单的入门课程和实战课程。 ... [详细]
  • 前段时间做一个项目,需求是对每个视频添加预览图,这个问题最终选择方案是:用canvas.toDataYRL();来做转换获取视频的一个截图,添加到页面中,达到自动添加预览图的目的。 ... [详细]
  • 一、路由首先需要配置路由,就是点击good组件进入goodDetail组件配置路由如下{path:goodDetail,component:goodDetail}同时在good组件中写入如下点击事件,路由中加入 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
author-avatar
王大胖_wa_ngli
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有