React学习之高级DOM元素属性(二十六)
来源:互联网 发布:域名免费备案 编辑:程序博客网 时间:2024/05/16 14:42
React
实现了一个独立于浏览器的DOM
系统,跨浏览器兼容性特别好。
在React
中, 所有的DOM
属性包括事件绑定都要使用托蜂命名法,比如tabindex
在React
中就变成了tabIndex
,同时需要显示在DOM
的属性需要用这两个前缀而且必须是小写,aria-*
和data-*
1.一些特殊的DOM
属性在React
中的处理
checked
这个属性用在checkbox
和radio
中,可以使用它检测组件是不是被选择,defaultChecked设置可以让组件默认被选择
className
除了是WEB
组件外都应该使用className
,WEB
组件则直接使用class
dangerouslySetInnerHTML
这个是React
用来代替浏览器中DOM
操作innerHTML
的,一般来说,直接设置HTML
代码是有风险的,可能会造成XSS
攻击,在前面我们说JSX
中插入表达式时也说过,{}
默认会对内部的变量进行编码,防止发生XSS
攻击。
但是,你可以通过React
直接输出HTML
,但是你需要做一些处理,分为如下两个步骤。
先创建一个对象,这个对象有一个
__html
的key
键来处理需要输出的HTML
数据然后通过
dangerouslySetInnerHTML
对这个数据进行输出就可以了。
function createMarkup() { return {__html: 'First · Second'};}function MyComponent() { return <div dangerouslySetInnerHTML={createMarkup()} />;}
虽然是这样的,但是有一点需要记住的就是,这样做是危险的,XSS
攻击无处不在啊。
htmlFor
由于for
是javascript
的保留字,所以React
使用htmlFor
来代替它,你可能有点困惑这个东西哪里用,在表单的label
中的for
属性用来绑定表单元素。
onChange
被React
独立出来,总的来说React
用它来实时响应用户的输入
selected
这个属性被使用在option
组件上
style
这个属性在React
中接受一个javascript
对象,同时属性的名称要是用驼峰命名法
const divStyle = { color: 'blue', backgroundImage: 'url(' + imgUrl + ')',};function HelloWorldComponent() { return <div style={divStyle}>Hello World!</div>;}
兼容性问题处理
const divStyle = { WebkitTransition: 'all', // webkit浏览器 msTransition: 'all' // ms IE浏览器,注意是小写};function ComponentWithTransition() { return <div style={divStyle}>This should work cross-browser</div>;}
suppressContentEditableWarning
看到这个属性名字大家或许就已经够明白了,这是针对contentEditable
处理的,在React
中,如果一个元素有子节点,而它自己又标记了contentEditable
的话就会报警告,因为它并不会工作。(然而这个属性个人测试并没有什么卵用)
value
这个属性放在input
和textarea
组件,可以使用它为组件设置值,defaultValue
用于设置默认值
2.在React
中更没有被特殊化的属性
这些没有特殊化的属性都必须要通过data-*
和aria-*
来加入JSXDOM
语句中
accept acceptCharset accessKey action allowFullScreen allowTransparency alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge charSet checked cite classID className colSpan cols content contentEditable contextMenu controls coords crossOrigindata dateTime default defer dir disabled download draggable encTypeform formAction formEncType formMethod formNoValidate formTargetframeBorderheaders height hidden high href hrefLang htmlFor httpEquivicon id inputMode integrity iskeyParams keyType kindlabel lang list loop lowmanifest marginHeight marginWidth max maxLength media mediaGroup method min minLength multiple muted namenoValidate nonceopen optimumpattern placeholder poster preload profileradioGroup readOnly rel required reversed role rowSpan rows sandbox scope scoped scrolling seamless selected shape size sizes span spellCheck src srcDoc srcLang srcSet start stepstyle summarytabIndex target title typeuseMapvaluewidth wmode wrap
其中针对RDFa
标准的处理,如下
about datatype inlist prefix property resource typeof vocab
除此之外还有几个非标准的属性
autoCapitalize autoCorrect//用于Safari<link rel="mask-icon" />中的color属性//在SafariitemProp itemScope itemType itemRef itemID//HTML的微数据security//古老的IEunselectable//IEresults autoSave//webkit/blink对于search额外的支持
3.React
支持并且没有特殊化的SVG
属性
accentHeight accumulate additive alignmentBaseline allowReorder alphabeticamplitude arabicForm ascent attributeName attributeType autoReverse azimuthbaseFrequency baseProfile baselineShift bbox begin bias by calcMode capHeightclip clipPath clipPathUnits clipRule colorInterpolationcolorInterpolationFilters colorProfile colorRendering contentScriptTypecontentStyleType cursor cx cy d decelerate descent diffuseConstant directiondisplay divisor dominantBaseline dur dx dy edgeMode elevation enableBackgroundend exponent externalResourcesRequired fill fillOpacity fillRule filterfilterRes filterUnits floodColor floodOpacity focusable fontFamily fontSizefontSizeAdjust fontStretch fontStyle fontVariant fontWeight format from fx fyg1 g2 glyphName glyphOrientationHorizontal glyphOrientationVertical glyphRefgradientTransform gradientUnits hanging horizAdvX horizOriginX ideographicimageRendering in in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLengthkerning keyPoints keySplines keyTimes lengthAdjust letterSpacing lightingColorlimitingConeAngle local markerEnd markerHeight markerMid markerStartmarkerUnits markerWidth mask maskContentUnits maskUnits mathematical modenumOctaves offset opacity operator order orient orientation origin overflowoverlinePosition overlineThickness paintOrder panose1 pathLengthpatternContentUnits patternTransform patternUnits pointerEvents pointspointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnitsr radius refX refY renderingIntent repeatCount repeatDur requiredExtensionsrequiredFeatures restart result rotate rx ry scale seed shapeRendering slopespacing specularConstant specularExponent speed spreadMethod startOffsetstdDeviation stemh stemv stitchTiles stopColor stopOpacitystrikethroughPosition strikethroughThickness string stroke strokeDasharraystrokeDashoffset strokeLinecap strokeLinejoin strokeMiterlimit strokeOpacitystrokeWidth surfaceScale systemLanguage tableValues targetX targetY textAnchortextDecoration textLength textRendering to transform u1 u2 underlinePositionunderlineThickness unicode unicodeBidi unicodeRange unitsPerEm vAlphabeticvHanging vIdeographic vMathematical values vectorEffect version vertAdvYvertOriginX vertOriginY viewBox viewTarget visibility widths wordSpacingwritingMode x x1 x2 xChannelSelector xHeight xlinkActuate xlinkArcrolexlinkHref xlinkRole xlinkShow xlinkTitle xlinkType xmlns xmlnsXlink xmlBasexmlLang xmlSpace y y1 y2 yChannelSelector z zoomAndPan
下一篇将讲
React
中的事件系统
- React学习之高级DOM元素属性(二十六)
- 06、react之 非DOM(元素)属性
- React学习之高级组件巴巴(二十三)
- React学习之高级ReactDOM(二十四)
- React学习之高级ReactDOMServer(二十五)
- React学习之高级事件系统(二十七)
- js学习小结(十六)--javascript 高级程序设计-DOM扩展
- React学习之将DOM给展示出来(二)
- 轻松学习JavaScript二十一:DOM编程学习之获取元素节点的子节点和属性节点
- React学习之进阶非ES6(十六)
- React学习(二)props属性
- 轻松学习JavaScript二十六:DOM编程学习之动态添加JS脚本和CSS样式
- 轻松学习JavaScript二十六:DOM编程学习之动态添加JS脚本和CSS样式
- React学习之高级顶配API说明(二十二)
- android 学习随笔二十六(动画:属性动画)
- angularjs学习笔记之二(DOM 元素的显示与隐藏)
- JavaScript学习之DOM元素
- Java程序员从笨鸟到菜鸟之(二十六)XML之DOM和SAX解析
- 猴子分桃问题
- 干货来了,手把手教你Android自定义饼状图,带加载动画!
- yii2 rules & scenario
- C语言的可变参数表函数的设计
- Gson转化为对象
- React学习之高级DOM元素属性(二十六)
- 分布式游戏服务器框架sframe(五)—— 配置管理
- iOS下使用FFMPEG所需的Frameworks
- fl2440——添加DM9000网卡支持
- 烧录文件到开发板操作
- 微信指数链接
- 方便的决定前端会员功能-逐浪CMS后台增加会员菜单可配置项
- C语言实现类
- JavaScript 实现内排序算法