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

电子商务网站建设公桂林网上商城

电子商务网站建设公,桂林网上商城,长春市科学技术局网站,深圳品牌网站制作推荐组件可以让你将UI分割成独立的#xff0c;可复用的模块#xff0c;然后考虑将每个模块彼此隔离。从概念上理解#xff0c;组件就像js中的函数。他们接受随意的输入#xff08;被称为props#xff09;然后返回React元素来描述屏幕上应该出现什么。 函数式和类式组件 定义一…组件可以让你将UI分割成独立的可复用的模块然后考虑将每个模块彼此隔离。从概念上理解组件就像js中的函数。他们接受随意的输入被称为props然后返回React元素来描述屏幕上应该出现什么。 函数式和类式组件 定义一个组件最简单的方法是写一个js函数 function Welcome(props) {return h1Hello, {props.name}/h1; } 这个函数是一个有效的React组件因为它接受一个props对象作为参数然后返回一个React元素。我们把这样的叫做函数式组件因为他们就是字面意思上js函数。 你也可以使用ES6的class来定义一个组件 class Welcome extends React.Component {render() {return h1Hello, {this.props.name}/h1;} } 从React的角度来看以上两种方式定义的组件是一样的。 类定义这种方法有一些额外的特性我们在下一章节会讨论。在此之前我们会使用函数来定义组件因为这样比较简洁。 渲染一个组件 先前我们只遇到React元素代表DOM标签的情况 const element div /; 然而React元素也可以代表用户自定义组件 const element Welcome nameSara /; 当React认为一个元素代表用户自定义组件时它通过单个对象传递JSX属性到这个组件。我们叫这个对象为“props”。 举个例子这段代码渲染“Hello, Sara”到页面上 function Welcome(props) {return h1Hello, {props.name}/h1; }const element Welcome nameSara /; ReactDOM.render(element,document.getElementById(root) ); 在CodePen中试一试。 让我们概括一下在这个例子中到底发生了什么: 我们调用了ReactDOM.render()来渲染Welcome nameSara/元素。React调用Welcome组件并将{name: Sara}这个对象作为props传入。Welcome组件返回了一个h1Hello, Sara/h1元素作为结果。React DOM高效地更新了DOM来匹配h1Hello, Sara/h1。附加说明 总是将组件名的首字母大写。 举个例子div/代表一个DOM标签但是Welcome /代表一个一个组件并且需要Welcome定义或引入。 组合组件 组件可以在它的输出中引用其他组件。这样我们可以使用同一个组件抽象出任意等级的细节。一个按钮一个表单一个目录一个对话框整个屏幕内容在React应用中所有这些都同样表示为组件。 举个例子我们创建一个渲染Welcome组件多次的App组件 function Welcome(props) {return h1Hello, {props.name}/h1; }function App() {return (divWelcome nameSara /Welcome nameCahal /Welcome nameEdite //div); }ReactDOM.render(App /,document.getElementById(root) ); 在CodePen中试一试。 通常新的React应用有一个单独的App组件在最顶端。然而如果你整合React到一个已经存在的应用里也许你会从底开始通过小组件类似Button逐渐替换一直到最高级别。 附加说明 组件必须返回一个单个的根元素。这就是为什么我们添加了一个div去包含所有Welcome /元素。 提取组件 不要害怕将组件分割成更小的组件。 举个例子看看这个Comment组件 function Comment(props) {return (div classNameCommentdiv classNameUserInfoimg classNameAvatarsrc{props.author.avatarUrl}alt{props.author.name}/div classNameUserInfo-name{props.author.name}/div/divdiv classNameComment-text{props.text}/divdiv classNameComment-date{formatDate(props.date)}/div/div); } 在CodePen里试一试。 Comment组件接受了author一个对象text一个字符串和date一个日期对象作为属性它在一个社会媒体网站上描述一段评论。 这个组件可以被简化因为嵌套的东西太多它很难被复用。让我们从这里提取出一些组件。 首先我们将提取Avatar function Avatar(props) {return (img classNameAvatarsrc{props.user.avatarUrl}alt{props.user.name}/); } Avatar组件不需要知道自己将要被渲染到Comment内部。这就是为什么我们给他的属性一个更通用的名字user而不是author。 建议在命名属性名的时候从组件自己的角度来命名而不要从使用时的上下文环境来命名。 现在可以将Comment组件简化为更小的部分 function Comment(props) {return (div classNameCommentdiv classNameUserInfoAvatar user{props.author} /div classNameUserInfo-name{props.author.name}/div/divdiv classNameComment-text{props.text}/divdiv classNameComment-date{formatDate(props.date)}/div/div); } 接下来我们将提取UserInfo组件它内部渲染了一个Avatar旁边的用户名 function UserInfo(props) {return (div classNameUserInfoAvatar user{props.user} /div classNameUserInfo-name{props.user.name}/div/div); } 这允许我们更进一步地简化Comment function Comment(props) {return (div classNameCommentUserInfo user{props.author} /div classNameComment-text{props.text}/divdiv classNameComment-date{formatDate(props.date)}/div/div); } 在CodePen中试一试。 提取组件也许看起来像很枯燥的工作但是拥有一系列可复用的组件会在大型应用中起到很好的效果。有一个很好的经验法则就是如果有一部分UI已经被使用多次如ButtonPanelAvatar或者组件本身已经足够复杂如APPFeedStoryComment那么使它成为一个可复用的组件会更合适。 props是只读的 如果你声明了一个组件使用函数或者类那么它永远不能修改它自己的props。看看这个sum函数 function sum(a, b) {return a b; } 这样的函数被称为“纯函数”因为它们不尝试改变它们的输入而且在输入同样的情况下一直返回一样的结果。 相比之下这个函数就不是纯函数因为它改变了输入 function withdraw(account, amount) {account.total - amount; } React是很灵活的但是它有一个严格的规定 所有React组件必须是纯粹的函数不能改变props。 当然应用的UI是随着时间动态变化的。在下一章节我们会介绍一个新的概念叫做“state”。state允许React组件随着时间变化去改变他们的输出作为对用户动作的响应网络的响应或者其他东西。state并没有违反这个规定。 转载于:https://www.cnblogs.com/hahazexia/p/6381054.html
http://wiki.neutronadmin.com/news/121296/

相关文章:

  • 网站配色与布局 教材网站建设管理情况的通报
  • 网站建设技术经理岗位职责江门网站推广技巧服务
  • 网页设计师个人网站婚庆公司赚钱吗
  • 建设一个私人视频网站官网网址
  • 旅游网站建设系统为什么要做营销型的网站建设
  • 网站编程语言哪个好网站建设优秀网
  • 网站的广告语应该怎么做什么是响应式
  • 做房产推广那个网站好icp备案查询网站
  • 手机建站最好的网站三个页面的网页作品模板
  • 哪里有网站可以做动态视频倒计时ueditor如何上传wordpress
  • 网站流量超限什么意思商务网站制作公司
  • 公司做免费网站建设深圳返利网站开发
  • 怎么制作一个免费的网站模板坂田网站建设流程
  • 大安网站建设运营方案模板
  • 创办一个网站多少钱网站的外链怎么做
  • 施工程找工程做哪个网站好游戏开发工程师月薪
  • 保定建站价格阜阳网站制作公司哪里有
  • 诸暨网站建设书生商友做网站设计的网站
  • 华为云建设网站Wordpress页面方块
  • 横峰县建设局网站做网站的需要什么要求
  • 网站查询域名百度域名查询官网
  • 番禺网站开发企业做网站设计需求
  • 呼市网站开发淘宝分销平台
  • 江门网站制作流程包头seo哪家专业
  • 万网网站模板购买石家庄最新状况
  • 律师微网站制作整站seo怎么做
  • 响应式网站的登录设置wordpress 最新
  • 网站集约化建设会议请示网站关键词描述
  • 一个网站可以有几个域名饮食网站模板
  • 杭州的网站设计个人简历模板免费下载网站