当前位置: 首页 > news >正文

深圳网站建设列表网昆明做网站建设的公司哪家好

深圳网站建设列表网,昆明做网站建设的公司哪家好,t恤定制平台,中国建设银行吉林分行网站一、props 了解 理解 1、每个组件对象都会有 props#xff08;properties的简写#xff09;属性 2、组件标签的所有属性都保存在 props 中 作用 通过标签属性从组件外向组件内传递变化的数据 注意 组件内部不要修改 props 数据 二、案例 需求#xff1a;自定义用来…一、props 了解 理解 1、每个组件对象都会有 propsproperties的简写属性 2、组件标签的所有属性都保存在 props 中 作用 通过标签属性从组件外向组件内传递变化的数据 注意 组件内部不要修改 props 数据 二、案例 需求自定义用来显示一个人员信息的组件 姓名必须指定且为字符串类型 性别为字符串类型如果性别没有指定默认为男 年龄为字符串类型默认为18 1、基本使用 !DOCTYPE html html langen headmeta charsetUTF-8titleprops基本使用/title /head body!-- 准备好一个“容器” --div idtest1/divdiv idtest2/divdiv idtest3/div!-- 引入react核心库 --script typetext/javascript src../js/react.development.js/script!-- 引入react-dom用于支持react操作DOM --script typetext/javascript src../js/react-dom.development.js/script!-- 引入babel用于将jsx转为js --script typetext/javascript src../js/babel.min.js/scriptscript typetext/babel// 1、创建组件class Person extends React.Component {// state是在组件内部定义数据通过 this.state.xxx 访问// state { name: jerry, sex: 男, age: 19 }render() {console.log(this) // Person组件的实例对象// 通过Person组件实例的props属性接收外部传入数据const { name, sex, age } this.propsreturn (ulli姓名{ name }/lili性别{ sex }/lili年龄{ age }/li/ul)}}// 2、渲染组件到页面ReactDOM.render(Person namejerry sex男 age{19}/, document.getElementById(test1))ReactDOM.render(Person nametom sex女 age{18}/, document.getElementById(test2))// 模拟api返回数据处理批量传递属性const p { name: 老刘, sex: 女, age: 18 }// ReactDOM.render(Person name{p.name} sex{p.sex} age{p.age}/, document.getElementById(test3))// 简写 返回数据p中的数据项(name、sex、age...)必须存在否则取不到值ReactDOM.render(Person {...p}/, document.getElementById(test3))/* ... 展开运算符 */// Person {...p}/ 中的 {} 代表要在此处写js表达式并不是字面量对象// ... 不能遍历对象babelreact 允许使用 ... 遍历对象仅适用于标签属性传递console.log(展开运算符, ...p)/script /body /html2、对 props 进行限制 React 中使用 propTypes 对标签属性进行类型、必要性的限制 React.PropTypes 形式 React v15.5 开始已弃用 React v15.5 及以后版本以后引入 prop-types 库对组件标签属性进行限制 React 中使用 defaultProps 指定默认标签属性值 !DOCTYPE html html langen headmeta charsetUTF-8title对props进行限制/title /head body!-- 准备好一个“容器” --div idtest1/divdiv idtest2/divdiv idtest3/div!-- 引入react核心库 --script typetext/javascript src../js/react.development.js/script!-- 引入react-dom用于支持react操作DOM --script typetext/javascript src../js/react-dom.development.js/script!-- 引入babel用于将jsx转为js --script typetext/javascript src../js/babel.min.js/script!-- 引入prop-types用于对组件标签属性进行限制全局有PropTypes对象 --script typetext/javascript src../js/prop-types.js/scriptscript typetext/babelclass Person extends React.Component {render () {const { name, sex, age } this.props// this.props.speak() // 执行传入方法// props是只读的// this.props.name jack // 此行代码会报错因为props是只读的return (ulli姓名{ name }/lili性别{ sex }/lili年龄{ age 1 }/li/ul)}}// 伪代码Person.属性规则 {name: 必传字符串,sex: 非必传字符串默认男,age: 非必传数字默认18}// React 中使用 propTypes 对标签属性进行类型、必要性的限制Person.propTypes {// name: React.PropTypes.string.isRequired, // React v15.5 开始已弃用name: PropTypes.string.isRequired, // 限制name必传且为字符串sex: PropTypes.string, // 限制sex为字符串age: PropTypes.number, // 限制age为数字speak: PropTypes.func // 限制speak为函数function会和关键字冲突改为使用func}// React 中使用 defaultProps 指定默认标签属性值Person.defaultProps {sex: 男, // sex默认值为男age: 18 // age默认值为18}ReactDOM.render(Person namejerry speak{speak}/, document.getElementById(test1))ReactDOM.render(Person nametom sex女 age{18} speak{speak}/, document.getElementById(test2))// 给实例传入方法限制传入方法必须为函数function speak() {console.log(我说话了)}/script /body /html3、props 的简写方式 使用 static 关键字给类自身添加属性将 propTypes、defaultProps 写在类中 !DOCTYPE html html langen headmeta charsetUTF-8title对props进行限制/title /head body!-- 准备好一个“容器” --div idtest/div!-- 引入react核心库 --script typetext/javascript src../js/react.development.js/script!-- 引入react-dom用于支持react操作DOM --script typetext/javascript src../js/react-dom.development.js/script!-- 引入babel用于将jsx转为js --script typetext/javascript src../js/babel.min.js/script!-- 引入prop-types用于对组件标签属性进行限制 --script typetext/javascript src../js/prop-types.js/scriptscript typetext/babelclass Person extends React.Component {constructor(props) {// 构造器是否接收props是否传递给super取决于是否希望在构造器中通过this访问props// console.log(props)super(props)console.log(constructor, this.props)}/* 简化写法使用static关键字给类自身添加属性 */// 对标签属性进行类型、必要性的限制static propTypes {name: PropTypes.string.isRequired, // 限制name必传且为字符串sex: PropTypes.string, // 限制sex为字符串age: PropTypes.number, // 限制age为数字}// 指定标签默认属性值static defaultProps {sex: 男, // sex默认值为男age: 18 // age默认值为18}render() {const { name, sex, age } this.propsreturn (ulli姓名{name}/lili性别{sex}/lili年龄{age 1}/li/ul)}}ReactDOM.render(Person namejerry /, document.getElementById(test))/script /body /html4、函数组件使用 props 函数式组件可以通过接收参数形式使用 propsprops 会收集所有传递的标签属性 !DOCTYPE html html langen headmeta charsetUTF-8title对props进行限制/title /head body!-- 准备好一个“容器” --div idtest/div!-- 引入react核心库 --script typetext/javascript src../js/react.development.js/script!-- 引入react-dom用于支持react操作DOM --script typetext/javascript src../js/react-dom.development.js/script!-- 引入babel用于将jsx转为js --script typetext/javascript src../js/babel.min.js/script!-- 引入prop-types用于对组件标签属性进行限制 --script typetext/javascript src../js/prop-types.js/scriptscript typetext/babelfunction Person(props) {const { name, age, sex } propsreturn (ulli姓名{ name }/lili性别{ sex }/lili年龄{ age }/li/ul)}// React 中使用 propTypes 对标签属性进行类型、必要性的限制Person.propTypes {name: PropTypes.string.isRequired, // 限制name必传且为字符串sex: PropTypes.string, // 限制sex为字符串age: PropTypes.number, // 限制age为数字}// React 中使用 defaultProps 指定标签默认属性值Person.defaultProps {sex: 男, // sex默认值为男age: 18 // age默认值为18}ReactDOM.render(Person namejerry /, document.getElementById(test))/script /body /html三、展开运算符了解 !DOCTYPE html html headmeta charsetUTF-8 /titleDocument/title /headbodyscript typetext/javascriptlet arr1 [1, 3, 5, 7, 9]/* 1、展开一个数组 */console.log(...arr1) // 1 3 5 7 9/* 2、连接数组 */let arr2 [2, 4, 6, 8, 10]let arr3 [...arr1, ...arr2]console.log(arr3) // [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]/* 3、不定参数在函数中使用 */function sum(...numbers) {return numbers.reduce((preValue, currentValue) {return preValue currentValue})}console.log(sum(1, 2, 3, 4)) // 10/* 4、构造字面量对象时使用展开语法 */let person { name: tom, age: 18 }// 4.1、深拷贝一层let person2 { ...person } person.name jerryconsole.log(person) // {name: jerry, age: 18}console.log(person2) // {name: tom, age: 18}// console.log(...person) // 报错展开运算符不能展开对象// 4.2、合并let person3 { ...person, name: jack, address: 地球 }console.log(person3) // {name: jack, age: 18, address: 地球}/script /body /html
http://www.zqtcl.cn/news/816955/

相关文章:

  • 县检察院门户网站建设情况门户网站衰落的原因
  • 菏泽网站建设哪好大型企业网络搭建
  • t恤定制网站厦门制作网站企业
  • 上海建站优化建设网站个人简介范文
  • 青岛网站建设公司排名做收集信息的网站
  • 有空间与域名后怎么做网站电影网站建设费用
  • 网站建设销售找客源app制作培训
  • ps制作网站产品图片ps平面设计主要做什么
  • 怎样更新网站泉州网站开发公司
  • 蕲春县住房和城乡建设局网站广东建设局网站首页
  • 网站优化工作室共享经济型网站开发
  • 自己做网站好还是购买网站好网站建设平台报价
  • 设计师配色网站太原建站模板源码
  • 学计算机的做网站的叫什么工作wordpress商用收费不
  • 青岛网站建设谁家好一些网页微信怎么登陆
  • 企业网站seo优做网站的旅行社
  • 十大免费自助建站上传网站到空间
  • 深圳企业做网站简约个人网站
  • 茂名放心营销网站开发网站怎么做app
  • php语言 网站建设专业的外贸网站建设公司价格
  • 看英语做游戏的网站wordpress与微信对接
  • 企业网站打不开了看守所加强自身网站建设工作
  • 长汀网站建设做电池的有哪些网站
  • 做软件常用的网站厦门建设局地址
  • 沭阳三剑客做网站科技 公司 响应式 网站
  • 深圳网站建设培训哪家好曲阜网架公司
  • wordpress建立网站实例贵阳网站开发谁家做的好
  • 百度网站推广怎么收费中国科技成果
  • 枣庄企业网站建设wordpress 评论群发
  • 网站视觉设计方案视频制作素材