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

网站怎么开发网络公司网站建设报价

网站怎么开发,网络公司网站建设报价,wordpress勾子,中文网址和中文域名区别一、JSX JSX是javascript XML的简写#xff0c;实际上是javascript的扩展#xff0c;既有javascript的语法结构#xff0c;又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签#xff0c;但是还要遵守JSX的语法的要求#xff0c;可以使用…一、JSX JSX是javascript XML的简写实际上是javascript的扩展既有javascript的语法结构又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签但是还要遵守JSX的语法的要求可以使用如下两种方式 JSX必须要有一个根节点而且编译之后在浏览器中不产生根标签jsx可以使用如下两种方式完成 使用空标签的方式来完成 const contenth1Hello Giles/h1h1Hello Woniuxy/h1/ Fragment组件来完成 const contentFragmenth1Hello Giles/h1h1Hello Woniuxy/h1/Fragment JSX中的标签如果没有子元素那么也要使用/来作为结束 img srchttps://api.java.crmeb.net/crmebimage/store/2020/08/15/adae23e354114cd5bd8f3cae740741c23opxeh8kw2.jpg//img或者 img srchttps://api.java.crmeb.net/crmebimage/store/2020/08/15/adae23e354114cd5bd8f3cae740741c23opxeh8kw2.jpg/ 采用驼峰式命名法 class----className for---htmlFor tabindex---tabIndex 为了避免分号陷阱建议大家必须使用()将元素括起来 const content(/) 2、JSX的表达式 在JSX中不管是动态元素的渲染还是属性的渲染全部通过{}来进行渲染的 let nameGiles let age38 let jobteacher let hobby[play basketball,play football] let avatarhttps://www.baidu.com/img/flexible/logo/pc/result.png const template(h1个人简介/h1div姓名:{name}/divdiv年龄:{age}/divdiv工作:{job}/divdiv爱好:{hobby}/divdivimg src{avatar}/img/div/) jsx的算数表达式和三元表达式 div是否成年:{age18?成年:未成年}/div div虚岁:{age1}/div 函数表达式 let idcard610122198404084030 const getBirthdayidcardidcard.slice(6,10)-idcard.slice(10,12)-idcard.slice(12,14) const template(h1个人简介/h1div姓名:{name}/divdiv年龄:{age}/divdiv工作:{job}/divdiv爱好:{hobby}/divdivimg src{avatar}/img/divdiv是否成年:{age18?成年:未成年}/divdiv虚岁:{age1}/divdiv生日:{getBirthday(idcard)}/div/) 对象表达式 let user{name:刘备,age:39,job:皇帝 } const introduceuser我叫${user.name},今年${user.age}岁,职业是${user.job} const template(div姓名:{user.name}/divdiv年龄:{user.age}/divdiv职业:{user.job}/divdiv介绍:{introduce(user)}/div /) 3、列表渲染 import React, { Component, Fragment } from react import /App.css export default class App extends Component {render() {const orderList [{title: 待付款,icon: icon-daifukuan},{title: 待发货,icon: icon-daifahuo},{title: 待收货,icon: icon-daishouhuo},{title: 待评价,icon: icon-daipingjia},{title: 售后/退款,icon: icon-daifukuan}]return (Fragmentdiv classNamemimediv classNameorder-centerdiv classNameorder-center-headerdiv订单中心/divdiv查看全部/div/divdiv classNameorder-center-body{orderList.map(item div classNameorder-itemi className{iconfont item.icon}/idiv{item.title}/div/div)}/div/div/div/Fragment)} } 二、react的样式的处理 针对于行内样式和类样式的处理如下 1、类样式 使用className类样式名方式来进行类样式的设置 在src/assets/css/index.css .mtable{border-collapse: collapse;width: 900px; } .mtable td{border:1px solid #ccc;padding:10px;text-align: center; } 在src/index.js中引入 import ./assets/css/index.css 2、行内样式 语法 div style{{key:value,key:value}}/div 当然也可以将对象提取出来 const headStyle{border:1px solid #eee,padding:10px,backgroundColor:#ccc,color:#fff} th style{headStyle}序号/th 注意样式名采用驼峰式命名法如果有多个单词每个单词的首字母必须要大写才可以。 三、引入本地图片 如果在一个组件中要引入图片这个图片可以来自本地也可以来自网络来自本地图片的处理 如果要引入本地中图片常用的方法有两种 通过ES6的import方式进行导入 import logo from ./assets/logo.png export default class App extends Component {render() {return Fragmentimg src{logo}/img/Fragment} } 通过node.js的require方法引入 import logo from ./assets/logo.png export default class App extends Component {render() {const logorequire(./assets/logo.png)return Fragmentimg src{logo}/img/Fragment} } 注意如果图片是网络图片直接写网址就可以了无需进行其他处理如果是网络图片有的时候图片地址是正确的但是图片却出不来可能是防盗链问题。 四、虚拟DOM和jsx底层渲染机制 1、什么是虚拟DOM 在 React 中每个 DOM 对象都有一个对应的 Virtual DOM 对象它是 DOM 对象的 JavaScript 对象表现形式其实就是使用 JavaScript 对象来描述 DOM 对象信息比如 DOM 对象的类型是什么它身上有哪些属性它拥有哪些子元素。 下面是一个DOM对象 div classNamecontainerh3Hello React/h3pReact is great /p /div 对应的虚拟DOM如下 {type: div,props: { className: container },children: [{type: h3,props: null,children: [{type: text,props: {textContent: Hello React}}]},{type: p,props: null,children: [{type: text,props: {textContent: React is great}}]}] } 虚拟DOM如何提升效率的 精准找出发生变化的 DOM 对象只更新发生变化的部分。 在 React 第一次创建 DOM 对象后会为每个 DOM 对象创建其对应的 Virtual DOM 对象在 DOM 对象发生更新之前React 会先更新所有的 Virtual DOM 对象然后 React 会将更新后的 Virtual DOM 和 更新前的 Virtual DOM 进行比较从而找出发生变化的部分React 会将发生变化的部分更新到真实的 DOM 对象中React 仅更新必要更新的部分。 2、创建虚拟DOM的方式 2.1、使用createElement创建虚拟DOM 我们通过React对象中提供的createElement函数完成了虚拟DOM的创建而后再通过ReactDOM的render函数将其渲染到页面的指定元素中这种方式创建虚拟DOM的方式相对而言比较麻烦,而且循环创建多个元素的时候还需要指定key,否则会报错。 import React from react; import ReactDOM from react-dom/client;const root ReactDOM.createRoot(document.getElementById(root)); const helloRectEleReact.createElement(h1,null,Hello React); const helloWoniuEleReact.createElement(h1,null,Hello Woniuxy); const helloGilesEleReact.createElement(h1,null,Hello Giles); const containerElementReact.createElement(div,null, [helloRectEle,helloWoniuEle,helloGilesEle]); root.render(containerElement); 如上页面显示是正常的但是控制台会报如下错误 Warning: Each child in a list should have a unique key prop.Check the top-level render call using div. See https://reactjs.org/link/warning-keys for more information.at h1 这是因为在循环生成多个组件的时候没有给组件加上key引起具体修改如下 import React from react; import ReactDOM from react-dom/client;const root ReactDOM.createRoot(document.getElementById(root)); const helloRectEleReact.createElement(h1,{key:0},Hello React); const helloWoniuEleReact.createElement(h1,{key:1},Hello Woniuxy); const helloGilesEleReact.createElement(h1,{key:2},Hello Giles); const containerElementReact.createElement(div,null, [helloRectEle,helloWoniuEle,helloGilesEle]); root.render(containerElement); Key的作⽤ key是虚拟DOM对象的标识在更新时标识为keys起着极其重要的作 ⽤即当状态中的数据发⽣变化时react会根据新数据⽣成新的虚拟 DOM随后React进⾏新旧虚拟DOM的key的对⽐如果存在相同的 key若内容没变则沿⽤之前的真实DOM若数据变了则⽣成新的真 实DOM并且替换⻚⾯之前的真实DOM若不存在key则根据数据创 建新的真实DOM随后进⾏⻚⾯渲染减少不必要的元素重渲染提升性能 1.2、使用JSX创建虚拟DOM 对于初学者来说通过createElement方法构建用户界面属实不太友好但是在React内部确实需要通过这种方式创建虚拟DOM对象如何解决这个矛盾呢 React为createElement方法创造了替代语法让开发者可以通过类似于HTML的语法创建用户界面在构建应用时再使用babel将这种替换语法转换回createElement方法的调用代码下面就是使用JSX方式创建下面我们先来通过一段代码来看一下后续我们再具体详细讲解JSX的语法 const conatiner(divh1Hello React/h1h1Hello Woniuxy/h1h1Hello Giles/h1/div)ReactDOM.render(conatiner,document.getElementById(root)); 实际上JSX的方式最终还是会转成第一种使用React.createElement()函数创建的方式这里只是为了方便使用了JSX,我们编写的JSX通过babel来转换的下面我们可以在官网上来做这个实验 下面是babel的官网babel官方网站 Babel 中文文档 | Babel中文网 · Babel 中文文档 | Babel中文网 这里提供了将JSX的方式最终转成createElement的方式 使用JSX的方式创建虚拟DOM的步骤 在body中定义一个div容器 导入包 script srchttps://unpkg.com/react18/umd/react.development.js crossorigin/scriptscript srchttps://unpkg.com/react-dom18/umd/react-dom.development.js crossorigin/scriptscript src./node_modules/babel-standalone/babel.js/script 注意这里要引入babel.js对JSX进行转换首先引入之前可以通过yarn add babel-standalone方式来下载babel 编写jsx script typetext/babelconst divElementdivh1个人介绍/h1tabletrtd姓名:/tdtd张三/td/trtrtd年龄:/tdtd33/td/trtrtd性别:/tdtd男/td/tr/table/div /script JSX中的代码可以是DOM元素也可以是以后的自定义组件 渲染虚拟DOM到目标容器上 const rootReactDOM.createRoot(document.getElementById(app))root.render(divElement) 3、JSX的底层渲染机制 jsx的底层渲染机制可以分为如下步骤 第1步把编写好的jsx语法编译成虚拟DOM对象 基于babel-preset-react-app把JSX编译为React.createElement(...)这种格式 可以在babel中测试一下babel的地址Babel · Babel 下面介绍一下React.createElement(ele,props,...children) 参数说明 |- ele:元素的标签名或者组件 |- props:元素的属性集合(对象)注意如果没有设置过任何的属性则此值是null |- children:第三个以及以后的参数都是当前元素的子节点 执行createElement方法后创建出virtual DOM虚拟DOM对象格式如下 第2步将虚拟DOM通过diff算法转成真实DOM
http://www.zqtcl.cn/news/806879/

相关文章:

  • 中国建设银行网站易方达消费我有域名怎么做网站
  • 网站图片规格2023年7 8月十大新闻
  • 建立一个小型网站多少钱晋城网站制作
  • 泰安哪家做网站好定制app软件
  • 成品网站设计网站wordpress 登录慢
  • 广州营销型网站建设公司哪家名气大朝阳网络公司
  • 网站怎么做排查修复关键词排名优化网站
  • 上海企业网站动易网站模版的制作
  • 北京网站建设华大网站模拟课堂模式应该怎么做
  • 站长工具 seo综合查询有新的wordpress更新是英文版
  • 做微信头图的网站成都做seo网站公司
  • 工程设计东莞网站建设技术支持wordpress+打断点
  • 一个域名可以绑定几个网站网站建设如何做账
  • PHP网站建设的课后笔记一个产品的营销方案
  • 宝塔linux面板官网泰州seo
  • 咸阳城乡建设局网站动漫网站设计方案
  • 狮岭网站建设怎么建设英文网站
  • 网站建设需要交印花税吗wordpress远程自动下载图片
  • 专门做外国的网站有哪些seo网络优化师就业前景
  • 安阳信息港网站门户网站的特点
  • 宏大建设集团网站婚恋网站建设的目的
  • 企业网站建设有什么好设计网站公司的账务处理
  • 网站备案有什么要求wordpress导航栏上方
  • 河南专业建网站wordpress seo模板
  • 网站开发的教学课程策划公司经营范围有哪些
  • 需要锦州网站建设男生和女生做污的事情免费网站
  • 互联网网站商标免费做h5的网站有哪些
  • 营销型网站五大系统 单仁深圳住房与建设局官网
  • nas 做网站wordpress音乐门户主题
  • 企业邮箱163登录入口seo建站需求