[响应式系统与React| 青训营笔记]

85 阅读3分钟

这是我参与「第五届青训营 」笔记创作活动的第6天

响应式 Web 设计

页面的设计与开发根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整称之为响应式 Web 设计。

viewport 是用户网页的可视区域。 viewport 翻译为中文可以叫做"视区"。 手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。

背景图片可以响应调整大小或缩放。 以下是三个不同的方法:

  1. 如果 background-size 属性设置为 "contain", 背景图片将按比例自适应内容区域。图片保持其比例不变:
div {  
    width100%;  
    height: 400px;  
    background-imageurl('img_flowers.jpg');  
    background-repeat: no-repeat;  
    background-size: contain;  
    border: 1px solid red;  
}
  1. 如果 background-size 属性设置为 "100% 100%" ,背景图片将延展覆盖整个区域:
div {  
    width100%;  
    height: 400px;  
    background-imageurl('img_flowers.jpg');  
    background-size100% 100%;  
    border: 1px solid red;  
}
  1. 如果 background-size 属性设置为 "cover",则会把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。注意该属性保持了图片的比例因此 背景图像的某些部分无法显示在背景定位区域中。
div {  
    width100%;  
    height: 400px;  
    background-imageurl('img_flowers.jpg');  
    background-size: cover;  
    border: 1px solid red;  
}

不同设备显示不同图片

大尺寸图片可以显示在大屏幕上,但在小屏幕上却不能很好显示。我们没有必要在小屏幕上去加载大图片,这样很影响加载速度。所以我们可以使用媒体查询,根据不同的设备显示不同的图片。

React

React 使用 JSX 来替代常规的 JavaScript。

JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。

我们不需要一定使用 JSX,但它有以下优点:

  • JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。
  • 它是类型安全的,在编译过程中就能发现错误。
  • 使用 JSX 编写模板更加简单快速。

关于React注释的问题:

1、在标签内部的注释需要花括号

2、在标签外的的注释不能使用花括号

ReactDOM.render 是 React 的最基本方法用于将模板转为 HTML 语言,并插入指定的 DOM 节点。

ReactDOM.render(template,targetDOM) 方法接收两个参数:

  • ** 第一个是创建的模板,多个 dom 元素外层需使用一个标签进行包裹,如 
  • ** 第二个参数是插入该模板的目标位置。

若要为创建的某个元素增加 class 属性,不能直接定义 class 而要用 className,因为 class 是 javascript 中的保留字。例如给 input 添加 className 并更改样式:

<input type="text" className="userName" value={value}/> 
.userName{background: yellow} // 在CSS样式中定义

React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。

React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。

以下实例创建一个名称扩展为 React.Component 的 ES6 类,在 render() 方法中使用 this.state 来修改当前的时间。

添加一个类构造函数来初始化状态 this.state,类组件应始终使用 props 调用基础构造函数。

在 *React* 中,你可以创建不同的组件来封装各种你需要的行为。然后还可以根据应用的状态变化只渲染其中的一部分。

React 中的条件渲染和 JavaScript 中的一致,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI。