面向对象应用——React
特点:
    1、组件化(模块化) --- class(一个组件就是一个class)
    2、强依赖与JSX (JSX==babel==browser.js  是JS的扩展版)
    3、三个库:
        1)react.js ----> React 的核心库
        2)react-dom.js ----> 提供与 DOM 相关的功能
        3)babel.min.js ----> Babel 可以将 ES6 代码转为 ES5 代码,这样我们就能在目前不支持 ES6 浏览器上执行 React 代码。Babel 内嵌了对 JSX 的支持。通过将 Babel 和 babel-sublime 包(package)一同使用可以让源码的语法渲染上升到一个全新的水平
        4)如果我们需要使用 JSX,则 <script> 标签的 type 属性需要设置为 text/babel。
如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
<script type="text/babel">
// ...
</script>
</head>
<body>
<!-- ... -->
</body>
</html>
 
1、React最基础的东西
window.onload = function (){
let oDiv = document.getElementById('div1');
ReactDOM.render( //JSX
<span>124</span>,
oDiv
);
};
2、React组件
 
1)组件渲染1
class Test extends React.Component{
constructor(...args) {
super(...args);
}
render(){
return <span>span123</span>;
}
}
window.onload = function (){
let oDiv = document.getElementById('div1');
//JSX
ReactDOM.render(
<Test></Test>,
oDiv
);
};

2)组件渲染2 —— {表达式}

class Item extends React.Component{
constructor(...args) {
super(...args);
}
render(){
return <li>{this.props.str}</li>;
// 在 JSX 当中你可以插入 JavaScript 的表达式,表达式返回的结果会相应地渲染到页面上。表达式用 {} 包裹。
}
}
window.onload = function (){
let oDiv = document.getElementById('div1');
//JSX
ReactDOM.render(
<ul>
<Item str='111'></Item>
<Item str='111'></Item>
<Item str='111'></Item>
</ul>,
oDiv);
};

3)组件渲染3 —— 组件套组件

class Item extends React.Component{
constructor(...args) {
super(...args);
}
render(){
return <li>{this.props.str}</li>;
}
}
class List extends React.Component{
constructor(...args){
super(...args);
}
render(){
return <ul>
<Item str='111'></Item>
<Item str='111'></Item>
</ul>;
}
} window.onload = function (){
let oDiv = document.getElementById('div1');
//JSX
ReactDOM.render(
<List></List>,
oDiv);
};

4)组件渲染4 —— React传参

class Item extends React.Component{
constructor(...args) {
super(...args);
}
render(){
return <li>{this.props.str}</li>;
}
}
class List extends React.Component{
constructor(...args){
super(...args);
}
render(){
alert(this.props.arr[0]);
return <ul>
<Item str='111'></Item>
<Item str='111'></Item>
</ul>;
}
}
window.onload = function (){
let oDiv = document.getElementById('div1');
//JSX
ReactDOM.render(
// <List arr="['bbb','ppp','ddd']"></List> // 输出:[
<List arr={['bbb','ppp','ddd']}></List>, // 输出:bbb
oDiv
);
};

注意:

React 有两种传参方式 分别是字符串和表达式 其中 只有表达式才可以输出字符串以外的东西,比如,数组...

5)组件渲染4 —— React传参3(映射)

class Item extends React.Component{
constructor(...args) {
super(...args);
}
render(){
return <li>{this.props.str}</li>;
}
}
class List extends React.Component{
constructor(...args){
super(...args);
}
// 还是报错了!
render(){ let aItems = this.props.arr.map(a=><Item str={a}></Item>);
return <ul>
{aItems}
</ul>;
// return <ul>
// {this.props.arr.map(a=><Item str={a}></Item>)}
// </ul>;
}
}
window.onload = function (){
let oDiv = document.getElementById('div1');
//JSX
ReactDOM.render(
<List arr={['bbb','ppp','ddd','fas']}></List>,
oDiv);
};

ES6——面向对象应用的更多相关文章

  1. ES6面向对象 动态添加标签页

    HTML <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml&quo ...

  2. JS - ES5与ES6面向对象编程

    1.面向对象 1.1 两大编程思想 1.2 面向过程编程 POP(Process-oriented programming) 1.3 面向对象编程 OOP (Object Oriented Progr ...

  3. ES6 面向对象笔记

    JS面向对象两大编程思想 面向过程 面向对象 面向过程编程POP         面向过程就是分析出问题的需要步骤,然后用函数一步一步的实现,使用的时候一个一个调用就可以了 面向对象编程OOP     ...

  4. ES6面向对象实现tab栏切换效果

    面向对象实现tab栏切换效果

  5. ES6——面向对象-基础

    面向对象原来写法 类和构造函数一样 属性和方法分开写的 // 老版本 function User(name, pass) { this.name = name this.pass = pass } U ...

  6. es6面向对象

    <script> class user{ constructor(name,age){ this.name=name; this.age=age; } showName(){ alert( ...

  7. es6 面向对象选项卡(自动轮播功能)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 粗看ES6之面向对象写法

    标签: es6 在es6以前,js没有类的概念,虽然有构造函数原型的方式用来做面向对向开发,但是对于书法并不是十分友好,而且对于继承实现也不是十分友好. es6引入class constructor ...

  9. ES6新增语法(四)——面向对象

    ES6中json的2个变化 简写:名字和值相同时,json可以可以简写 let a=12,b=5; let json = { a, b } console.log(json) // { a:12 , ...

随机推荐

  1. 使用AnnotationConfigApplicationContext注册配置类

    1. AnnotationConfigApplicationContext功能 该类可以实现基于Java的配置类加载自定义在Spring的应用上下文的bean. 1.1 使用方式一:在构造方法中完成注 ...

  2. TweenMax的GSAP(GreenSock动画平台)GSAP,专业的Web动画库

    很好奇红框框里面的内容是什么,于是点了进去,又百度了下这个英文缩写具体指的什么东西. GSAP的全名是GreenSock Animation Platform,是一个从flash时代一直发展到今天的专 ...

  3. 安装k8s集群(亲测)

    先安装一台虚拟机,然后进行克隆,因为前面的步骤都是一样的,具体代码如下: Last login: Mon Nov 25 00:40:34 2019 from 192.168.180.1 ##安装依赖包 ...

  4. 【PowerOJ1738&网络流24题】最小路径覆盖问题 (最大流)

    题意: 思路: [问题分析] 有向无环图最小路径覆盖,可以转化成二分图最大匹配问题,从而用最大流解决. [建模方法] 构造二分图,把原图每个顶点i拆分成二分图X,Y集合中的两个顶点Xi和Yi.对于原图 ...

  5. Android实现无标题栏全屏的三种方法

    一.通过Java代码 在setContentView之前执行: requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏 getWindow().se ...

  6. 170815-关于Filter的知识点

    Filter简介:         Filter翻译为中文是过滤器的意思.         Filter是JavaWeb的三大web组件之一:Servlet.Filter.Listener       ...

  7. css内容过长显示省略号的几种解决方法

    单行文本(方法一): 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!) elli ...

  8. 箭头函数(Arrow Functions)

    ES5语法: var getPrice = function() { return 4.55; }; console.log(getPrice()); ES6 中,箭头函数就是函数的一种简写形式,使用 ...

  9. Linux中相关知识(atexit(),fork(),粘滞位)

    1.atexit()函数 函数名: atexit 头文件:#include<stdlib.h> 功 能: 注册终止函数(即main执行结束后调用的函数) 用 法: int atexit(v ...

  10. jenkins打包ios 报错rror: No signing certificate "iOS Distribution" found: No "iOS Distribution...

    错误提示如图: error: No signing certificate "iOS Distribution" found: No "iOS Distribution& ...