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

思而忧网站wordpress 命令插件

思而忧网站,wordpress 命令插件,百度电脑版登录网站,wordpress腾讯云 COS往期回顾:# React基础入门之虚拟Dom【一】 面向组件编程 react是面向组件编程的一种模式,它包含两种组件类型:函数式组件及类式组件 函数式组件 注:react17开始,函数式组件成为主流 一个基本的函数组件长这个样子 …

往期回顾:# React基础入门之虚拟Dom【一】

面向组件编程

react是面向组件编程的一种模式,它包含两种组件类型:函数式组件类式组件

函数式组件

注:react17开始,函数式组件成为主流

一个基本的函数组件长这个样子

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>hello_react</title></head><body><!-- 准备好一个“容器” --><div id="test"></div><!-- 引入react核心库 --><script type="text/javascript" src="./js/react.development.js"></script><!-- 引入react-dom,用于支持react操作DOM --><script type="text/javascript" src="./js/react-dom.development.js"></script><!-- 引入babel,用于将jsx转为js --><script type="text/javascript" src="./js/babel.min.js"></script><script type="text/babel">// 1、创建函数式组件function Demo() {return <h1>函数式组件</h1>;}// 2、渲染组件ReactDOM.render(<Demo />, document.getElementById("test"));</script></body>
</html>

页面效果如下:

函数名的注意事项

注意,渲染组件时,函数名称需要写成html标签的形式。此外,函数名称不能使用小写的形式:

// 1、创建函数式组件
function demo() {return <h1>函数式组件</h1>;
}
// 2、渲染组件
ReactDOM.render(<demo />, document.getElementById("test"));

如上,如果写成小写的形式,控制台会报错

这和Jsx的语法规则有关

遇到 <开头的代码, 以标签的语法解析: html同名标签转换为html同名元素, 其它标签需要特别解析

函数的执行者

上述代码中,我们并没有执行Demo函数,但当我们将它作为标签使用时,react帮我们执行了这个函数。

函数内的this指向

正常情况下,一个函数内的this应该指向window,但下面的示例中,this会是undefined

<script type="text/babel">// 1、创建函数式组件function Demo() {console.log("this", this);return <h1>函数式组件</h1>;}// 2、渲染组件ReactDOM.render(<Demo />, document.getElementById("test"));
</script>

原因很简单,我们的代码是在babel环境下执行的,bable会开启严格模式,让我们this的指向不是window。

我们可以验证一下,打开bable官网,

复制上述代码进去

可以看到,我们函数式组件最终会被编译成一个普通函数(这印证了JSX是语法糖)。

类式组件

注:在最新的react18版本以后,这种写法已经不推荐了,但这是学习了解react重要的一环!

一个基本的类式组件长这个样子

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>hello_react</title></head><body><!-- 准备好一个“容器” --><div id="test"></div><!-- 引入react核心库 --><script type="text/javascript" src="./js/react.development.js"></script><!-- 引入react-dom,用于支持react操作DOM --><script type="text/javascript" src="./js/react-dom.development.js"></script><!-- 引入babel,用于将jsx转为js --><script type="text/javascript" src="./js/babel.min.js"></script><script type="text/babel">// 1、创建类组件class MyComponent extends React.Component {render() {return <h1>这是一个类组件</h1>;}}// 渲染组件ReactDOM.render(<MyComponent />, document.getElementById("test"));</script></body>
</html>

页面效果

类式组件的写法

类式组件必须继承React.Component这个父类,且函数内部必须调用render函数

class MyComponent extends React.Component {render() {return <h1>这是一个类组件</h1>;}
}

我们知道,类的使用必须使用new关键词,但是上述代码我们并没有使用,那么MyComponent的实例是什么时候创建的?

在渲染组件时,react帮我们执行的。

ReactDOM.render(<MyComponent />, document.getElementById("test"));

执行代码后:

  • react解析组件标签,找到了MyComponent组件
  • 发现组件是使用类定义的,随后new出类的实例,并通过实例调用原型上的render方法
  • 将render返回的虚拟Dom转换为真实Dom,随后呈现在页面中

render函数

render函数定义位置

根据类的知识,render函数是定义在MyComponent类 的原型上的,我们打开控制台验证下

render函数中的this指向

根据类的知识,我们知道render中的this应该是MyComponent的实例对象

我们打印下

// 1、创建类组件
class MyComponent extends React.Component {render() {console.log("render中的this", this);return <h1>这是一个类组件</h1>;}
}

可以看出,this确实是MyComponent的实例对象,同时也可以验证实例对象的prototype上的存在MyComponen的render方法

组件中的属性

观察打印出来的实例对象,我们可以发现实例对象上存在很多属性方法,如contextprops

这些方法我们没有在MyComponent类中定义,那它必然来源于继承的父类React.Component。这些组件上的属性方法,我们将在下一篇文章熟悉。

http://www.yayakq.cn/news/201251/

相关文章:

  • 古城区建设局网站高端建网站
  • 竹子建站下载Wordpress Flexsilder
  • 织梦分类信息做的网站网站cms系统 开源框架
  • 蒙狼科技建设网站好不好前端代码 分享网站
  • 做国外网站收款怎么收大型网站维护费用
  • 石家庄做网站排名沈阳网络优化公司哪家好
  • 什么是网站开发与建设天津工程建设信息网站
  • 天将建设集团有限公司网站wordpress导航图标代码
  • 广州新建站深圳网站开发哪个公司好
  • 建立一个网站如何开通账号网站开发工作好找吗
  • 中卫网站推广公司网站静态模板下载
  • 拼团购物网站怎么做wordpress 插件 后门
  • 天津网站建设哪家权威山东莱芜金点子电子版
  • 狮城app更多网站万网是干什么用的
  • wordpress新用户站点山东公司网页定制
  • 网站 目标天津商业网站建设
  • wordpress 复杂开发wordpress seo title
  • 企业网站开发项目策划书基本框架51网站空间相册在哪里
  • 浙江标力建设集团网站wordpress自动发卡
  • 网站主页设计布局企业网站开发设计
  • 和城乡建设部网站韩国网页设计欣赏
  • 免费域名 网站外贸谷歌优化
  • 从做系统后以前的网站打不开了东莞网络公司代理
  • 类似非小号的网站怎么做简历设计网官网
  • 有没有做婚车的网站为什么建设旅游网站
  • md5加密网站全网营销心得体会
  • 平面设计师兼职网站app手机电视网站设计方案
  • 网站建设规划方案ppt模板他人盗用公司资料建设网站怎么处理
  • 哪个网站做美食好一点软件开发的一般方法步骤
  • 重庆整站seo娱乐彩票网站建设制作