elementui的css文件没有引入_为什么每个React组件都需要引入React?
回顾react的一般使用场景
如下所以所以,经常我们在开发项目的时候,创建每一组件,组件的第一行都会引入React,然而发现并没有使用过它。
import React, { Component } from 'react';export default class Home extends Component{ render() { return
hello react
}}
提出一个假想,如果不引入React会怎么样呢?程序还会不会正常的运行?
结果来了
不引入React的结果
上图就是不引入React的时候报的错误,错误的意思是React没有定义。看到这里可能就有点蒙了,既然引入的React根本没有使用,但是去掉它之后却报错了,说明该组件还是需要React的,那么它是怎么使用React的呢?
React背后的运用
React的运行机制能够解释一切,react的运行大概分成了三个阶段:
- jsx(也就是javascript xml)对象转变成javascript对象
- javascript对象转变成虚拟DOM对象
- 虚拟DOM对象变成实际的DOM对象
今天这个问题的答案主要就在第一,二阶段,众所周知周知,在第一阶段其实主要用到了Babel。Babel主要的功能就是转码功能,将ES6转换成ES5。
举个例子,现在有一个函数组件:
function Home() { return (
{alert(123)}} style={{ height: 30, background: 'red' }} > hello, react
)}
经过Babel转码后会变成什么呢?
"use strict";function Home() { return /*#__PURE__*/React.createElement("div", { className: "ele-wrapper", onClick: function onClick() { alert(123); }, title: "123", style: { height: 30, background: 'red' } }, "hello, ", /*#__PURE__*/React.createElement("span", null, "react"));}
这里似乎看到了一个熟悉的东西: React.createElement(.......),确实React是在这里使用的,所以我们在写代码的时候从表面上是看不出来React被使用了。
另外Babel是怎么调用React的呢?
我们在React项目使用Babel的时候,主要用到了这三个:
- babel-core
- babel-preset-env
- babel-plugin-transform-react-jsx
并且通常都会创建一个.babelrc的文件,文件中内容基本都如下:
{ "presets": ["env"], "plugins": [ ["transform-react-jsx", { "prama": "React.createElement" }] ]}
可以看到在使用babel-plugin-transform-react-jsx插件的时候,会需要调用React.createElement,这也就解释了为什么每个React组件页面都需要引入React的原因。
elementui的css文件没有引入_为什么每个React组件都需要引入React?相关推荐
- elementui的css文件没有引入_Python中引入模块详细介绍,使用模块的过程中注意事项教程...
为此 Python 提供了一个办法,把这些定义存放在文件中,这个文件被称为模块. 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. ...
- Echart的效果图表(组件都是引入echart的块)
折线图 <template><div class="number"><div id="NumberChart"></d ...
- html引入css文件和js文件方式
<link rel="stylesheet" href="../theme/default/style.css" type="text/css& ...
- 前端面试之---link 引入css文件和@import引入css文件的区别
css引入方式link与import的区别 1.link属于html标签,而@import是css提供的,只能加载CSS 2.加载顺序,link在页面加载时被加载,@import在页面加载完之后再加载 ...
- html如何引入css文件?HTML引入外部css文件的四种方法
在学习前端的时候,我们应该知道css给html标记添加各种样式,用来告诉浏览器,因该如何显示这些标记里面的内容.既然css是用来给html添加各种样式的,那么,html中如何引入外部的css文呢?本篇 ...
- css如何在html中链接代码,怎么在html中链接css文件?怎么链接css文件教程源码!...
在我们的平常学习中,每一个课时和每一个知识点直接都是有关联的,那么今天我们就来说说怎么在html中链接css文件,下面是小编为大家准备的一些链接css文件教程源码! 1.行内式 这是一种直接在html ...
- web项目html引入css文件路径,详解Webpack和Webpack-simple中如何引入CSS文件_旧店_前端开发者...
博主最近研究 首先说一下如何在webpack中引入 之后在App.vue文件中在style标签项目写入你想要引入的样式: 本例引入的样式是一个名为nam.css的文件,该文件只是让页面变蓝,之后运行即 ...
- vue动态切换css文件_如何在vue组件中动态的引入css文件?
问题描述 如标签描述的不准确,请见新直能分支调二浏页器朋代说谅 我的需求是开的接都上的和,近很触是没他电同近很触是没发多套皮肤,打包的时候只加载其中某一种的皮肤(不需要动态换肤),因为css文件过大, ...
- 外链引入css有哪些方式_引入CSS样式表的方式有哪些?
CSS用于修饰网页样式,但是,如果希望CSS修饰的样式起作用,就必须在html档中引入CSS样式表.引入样式表的常用方式有三种,即行内式.内嵌式.外链式,具体介绍如下. 1.行内式 行内式也称内联样式 ...
最新文章
- ASP.NET2.0 永恒密码之戒【月儿原创】
- windows codeblocks clang 3.7.0
- confusion_matrix函数的使用
- oracle 创建视图时提示自定义的函数功能名不管用_PCS 7 CFC的常用功能与操作
- EMNLP 2020 《MUTANT: A Training Paradigm for Out-of-Distribution Generalization in VQA》论文笔记
- 修改Bugzilla的主页图片
- JavaScript 检查对象属性
- java项目 导出_Java项目的导入和导出
- 【LeetCode】剑指 Offer 67. 把字符串转换成整数
- Selenium Webdriver 简易教程
- 基于Linux和MiniGUI的嵌入式系统软件开发指南(四)
- 一行一个链接代码_AI最优论文+代码查找神器:966个ML任务、8500+论文任你选
- 485转61850规约转换C语言,61850规约转换器
- 小白白红队初成长(2)主动信息收集
- 获取p12证书详情,返回证书详情实体
- Excel模板与Word模板【java】
- 【NLP】第 2 章 访问文本语料库和词汇资源
- python图中图_【python】matplotlib数据可视化(7)——图中图
- 购买装备 shu420
- 右键新建的文档是wps类型的而不是office类型的解决方案
热门文章
- 连接服务器框架协议,想要实现:设备通过tcp连接服务器,框架用的是worker或者gateway...
- 战地5离线bot模式_战地系列、烂橘子平台下载更新慢咋办?我这里有两个亲测有有效的方式。...
- dxp2004鼠标增强工具_26 工具栏的设置
- 沃尔玛宣布与TikTok达成直播带货合作?
- Golang教程:(十五)指针
- java循环do while_Java中for、while、do while三种循环语句的区别介绍
- python抓取汤不热视频_你们想要的 Tumblr 爬虫
- python埋点测试_测试一面(宇宙条)
- 实时获取浏览器滚动条高度(兼容写法)
- linux编译时开启宏,【spec】Linux上编译安装的spec文件中的常用路径以及宏变量