在组件中使用 style 行内样式并封装样式对象|学习笔记

简介: 快速学习在组件中使用 style 行内样式并封装样式对象

开发者学堂课程【React 入门与实战在组件中使用 style 行内样式并封装样式对象】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8109


在组件中使用 style 行内样式并封装样式对象


内容介绍

一、美化页面

二、封装


一、美化页面

先美化大标题:

CmtList.jsx

render() {return <div>

<h1 style="colpr:red;">

这是评论列表组件</h1>

保存出现报错:

The styleprop expects a mapping from style

properties to values,not a string.For

example,style={{marginRight:spacing+’em’}}when using JSX.

JSX 中写 state 样式的不能直接写字符串。

外层 { }表示要写 js,里面()表示样式对象。

所以:

{/*注意:JSX中,如果想写行内样式了,不能为style设置字符串的值*/}

{/*而是应该这么写:style={ { color: 'red'}}*/}

{/* <h1 style="color:red; ">这是评论列表组件</h1>*/}

在行内样式中,如果是数值类型的样式,则可以不用引号包裹,如果是字符串类型的样式值必须使用引号包裹。

比如写入 zIndex3 执行不会出现报错。

<h1 style={ { color:I 'red ', fontsize:‘35px}}>    

//这是评论列表组件

</h1>

字体比模板粗并且居中所以加一个样式:

fontWeight200textAlign:‘center

接下来美化列表里:

在外层有虚线并且有距离,字体与虚线有距离,有阴影:

return <div style={{

border: '1px dashed #ccc ' ,

margin: '10px',

padding: '10px

boxShadow:'0 0 10px #ccc '}}>

接下来把文字变小:

<h1 style={{ fontSize: '14px’}}>评论人: {props.user}</h1>

<p style={{fontsize: '12px'}}>评论内容: {props.content}</p>

image.png


二、封装

这样写结构变得繁琐,对结构进行优化,内部的方法代表对象。

对象也可以直接写在外边:

const itemStyle : [ border: ‘1px dashed #ccc ' , margin: ‘10px', padding: ‘10px', boxShadow: '0 0 10px #ccc'

const userStyle = { fontSize: '14px’}

const contentstyle = { fontSize: '12px’}

export default function CmtItem(props) {

return <div style={itemStyle}>

<h1 style={userStyle}>评论人: {props.user}</h1>

<p style={contentStyle}>评论内容:{props.content}</p>

</div>

}

这是第一层封装,将样式对象和 UI 结构分离。

第二层封装合并成大的样式对象:

const styles = {

item: { border: '1px dashed #cce ' , margin: '10px', padding: '10px', boxShadow: '0 0 10px tc.c' ),

user: { fontSize: '14px’}

content: { fontSize: '12px’}

export default function CmtItem(props) {

return <div style={styles.item}>

<h1 style={styles.user}>评论人: {props.user}</h1>

<p style={styles.content}>评论内容:{props.content}</p>

</div>

把三个不相关的样式封装成一个大样式,JS 对象,还可以继续封装成 js 文件放到单独的模块中:

新建一个 styles.js 文件,

export default iconst styles ={

item: { border: '1px dashed #ccc ' , mangin: '10px', padding: '10px', boxShadow: '0 0 10px #ccc' },

user: { fontSize: '14px’}

content: { fontSize: '12px’}

让外界拿到这个对象:

import styles from '@/components/styles'

这是第三层封装,抽离为单独的样式表模块。

相关文章
ECharts 提示框组件Tooltip属性大全(包含文本注释)
ECharts 提示框组件Tooltip属性大全(包含文本注释)
439 0
|
4月前
|
前端开发
行内样式表(style属性)
行内样式表(style属性)。
47 4
|
7月前
|
前端开发
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
|
7月前
|
Web App开发 前端开发 Windows
CSS基础常用属性之字体属性(如果想知道CSS的字体属性知识点,那么只看这一篇就足够了!)
CSS基础常用属性之字体属性(如果想知道CSS的字体属性知识点,那么只看这一篇就足够了!)
|
6月前
|
JavaScript
文本,最简单的文本样式设计风格样式,让Element-UI盒子居中的写法
文本,最简单的文本样式设计风格样式,让Element-UI盒子居中的写法
|
8月前
|
前端开发 小程序
WXSS模板样式-全局样式和局部样式
**WXSS**是微信小程序的样式表语言,类似于CSS,但做了扩展和修改。它引入了**rpx**作为尺寸单位,用于屏幕适配,1rpx在不同设备上的宽度不同,确保了自适应效果。此外,WXSS支持**@import**语法导入外部样式表,便于代码复用。全局样式定义在`app.wxss`中,作用于每个页面,而局部样式在页面的`.wxss`文件中,优先级高于全局样式,当两者冲突且权重相等时,局部样式会覆盖全局样式。
69 0
|
前端开发
CSS 支持伪类和伪元素,可用于指定文档中不同状态的样式。具体案例解析
CSS 支持伪类和伪元素,可用于指定文档中不同状态的样式。具体案例解析
57 2
|
前端开发
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(三)
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(三)
81 0
|
前端开发
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(一)
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(一)
205 0