08_组件三大属性(2)_props

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><div id="example1"></div><hr><div id="example2"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js/react-dom.development.js"></script><script type="text/javascript" src="../js/prop-types.js"></script><script type="text/javascript" src="../js/babel.min.js"></script>

<script type="text/babel">    /*    *   需求:自定义用来显示一个人员信息的组件,效果如页面.说明:        1.如果性别没有指定,默认为男        2.如果年龄没有指定,默认为18    * */    //1.定义组件 (简单)    /*function Person(props) {        return (            <ul>                <li>姓名:{props.name}</li>                <li>年龄:{props.age}</li>                <li>性别:{props.sex}</li>            </ul>        )    }*/

    //1.定义组件(复杂)    class Person extends React.Component {

        render() {            console.log(this);            return (                <ul>                    <li>姓名:{this.props.name}</li>                    <li>年龄:{this.props.age}</li>                    <li>性别:{this.props.sex}</li>                </ul>            )        }    }

    //指定属性默认值    Person.defaultProps = {        sex: ‘男‘,        age: 18    };    //指定属性值的类型和必要性    Person.propTypes = {        name: PropTypes.string.isRequired,        sex: PropTypes.string,        age: PropTypes.number    };

    //2.渲染组件标签    const person = {        name: ‘Tom‘,        age: 18,        sex: ‘女‘    };    /*    *   ...的作用    *   1.打包    *   function fn(...as) {} fn(1, 2, 3)    *   2.解包    *   const arr1 = [1, 2, 3] const arr2 = [6, ...arr1, 9]    * */    ReactDOM.render(<Person {...person}/>, document.getElementById(‘example1‘));

    const person2 = {        myName: ‘Jack‘,        age: 17    };    ReactDOM.render(<Person name={person2.myName} age={person2.age}/>, document.getElementById(‘example2‘));</script>

</body></html>

原文地址:https://www.cnblogs.com/zhanzhuang/p/10704523.html

时间: 2024-11-01 16:13:01

08_组件三大属性(2)_props的相关文章

07_组件三大属性(1)_state

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>03_componment_basic</title> </head> <body> <div id="example1"></div> <div id="example2&

09_组件三大属性(3)_refs和事件处理

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="example"></div> <script type="text/javascript&quo

vue-learning:29 - component - 组件三大API之三:slot

组件三大API之三: slot <slot>标签 v-slot指令 普通插槽 有默认值的插槽 具名插槽 作用域插槽 v-slot是Vue 2.6.0引入的一个新语法指令,目的是统一之前slot / slot-scope的用法.统一的指令语法更简洁也更易理解. 之前讲解的prop实现了组件向下的数据传递,而event中v-on / $emit可以实现组件向上的数据传递.这一节v-slot指令实现组件内容的自定义功能. 一个简单的例子,自定义一个按钮组件: <div id="app

vue-learning:27 - component - 组件三大API之二:event

组件三大API之二: event 在上一节中讲到prop单向下行数据绑定的特征,父组件向子组件传值通过prop实现,那如果有子组件需要向父组件传值或其它通信请求,可以通过vue的事件监听系统(触发事件,执行监听回调函数,并且可以在回调函数中接受传参). Vue内置了一套完整的事件触发器逻辑: v-on / @: 原来HTML元素中监听原生事件,或子组件自定义事件 .native: 触发组件根元素的原生事件 $on:监听组件自身触发的事件 $emit: 触发事件 $off: 卸载组件自身的事件监听

vue-learning:26 - component - 组件三大API之一:prop

组件三大API之一: prop prop的大小写 prop接收类型 字符串数组形式 对象形式: type / required / default / validator prop传递类型: 静态传递 / 动态绑定 单向数据流 非prop:替换或合并 / 禁用inheritAttrs:false / $attrs 上节对组件的概念讲到,组件是可复用的Vue实例,并且组件可以嵌套,组件间可以相互通信. 两个嵌套的组件通信,父组件向子组件传值,常规的做法就是采用prop 先看个一个例子直观感受下:

Angular2组件开发—属性与事件(一)

属性声明 - 暴露成员变量 属性是组件暴露给外部世界的调用接口,调用者通过设置不同的属性值来定制 组件的行为与外观: 在Angular2中为组件增加属性接口非常简单,只需要在Component注解的properties属性中声明组件的成员变量就可以了: 1 //EzCard 2 @Component({ 3 properties:["name","country"] 4 }) 上面的代码将组件的成员变量name和country暴露为同名属性,这意味着在EzApp的模

ExtJs--05--给window组件添加功能条以及子组件获取上级或下级组件的属性和方法

Ext.onReady(function(){ /** 1-- 给容器组件添加控制条 及 控制项 控制条 不同的方向有多种 tbar lbar rbar bbar fbar 2-- 根据组件本身拿到上级组件的属性及方法调用 */ var win = new Ext.window.Window({ id:"id001",//自定义编号 title:"自定义标题信息",//标题 width:400,//宽度 可以使用百分比 自适应浏览器大小 height:400,//高

Swing中使用UIManager批量自定义单一JComponent组件默认属性

最近在研究Swing,被它的复杂性气的快吐血了,刚才本打算把JFrame的背景色换成白底,结果发现事情没想象中那么顺利,调用setBackground完全没有效果,猛然醒悟到JPanel本身是带不透明底色的,事情一下子变得复杂起来了,因为即便最简单的窗口布局,也是嵌套了若干层JPanel.JSplitPane等容器的,一层遮盖一层,而要想统一改成白底的话,那得一个个改代码,或者用复杂的遍历算法... 百度上寻觅了一下,发现一个老去已久的帖子有提及到使用UIManager来批量更改默认值的,例如:

ExtJs--05--给window组件加入功能条以及子组件获取上级或下级组件的属性和方法

Ext.onReady(function(){ /** 1-- 给容器组件加入控制条 及 控制项 控制条 不同的方向有多种 tbar lbar rbar bbar fbar 2-- 依据组件本身拿到上级组件的属性及方法调用 */ var win = new Ext.window.Window({ id:"id001",//自己定义编号 title:"自己定义标题信息",//标题 width:400,//宽度 能够使用百分比 自适应浏览器大小 height:400,/