Javascript REACTJS-分配一个<;标签>;到一个变量?

Javascript REACTJS-分配一个<;标签>;到一个变量?,javascript,html,reactjs,Javascript,Html,Reactjs,我一直在问自己,是否可以在编译器不出错的情况下为变量分配一个标记 例如: let component = '<div>'; let component2 = '</div>'; let component=''; 让组件2=''; 结果是输出,而不是显示的 这是期望的结果: let component = <div>; let component2 = </div>; let组件=; 设component2=; 笑话开始了。当这样赋

我一直在问自己,是否可以在编译器不出错的情况下为变量分配一个标记

例如:

 let component = '<div>';
 let component2 = '</div>';
let component='';
让组件2='';
结果是输出
,而不是显示的

这是期望的结果:

 let component = <div>;
 let component2 = </div>;
let组件=;
设component2=;
笑话开始了。当这样赋值时,编译器会抛出一个错误,因为标记没有封闭

 let component = <div/>;
let组件=;
另一方面,这是可行的,因为它只是一个组件分配


现在是否有可能仅仅将一个
赋值给一个变量,该变量可以用一个
进行交换?

中没有标记。您正在使用的JSX被转换为
createElement
调用。接下来的两段代码是等效的


1234

; createElement(“div”,null,createElement(“p”,null,1234”);
如果您想以某种方式将一个元素“交换”给另一个元素,那么可以仔细观察将JSX转换为纯JavaScript时发生的情况。您可以将元素名作为字符串传递,并且可以肯定地将字符串放入变量中。所以,如果我们想将“div”替换为“p”,最好的方法是:

函数DivThatSwapsToParagraph(){
let[Tag,setTag]=useState(“div”);
返回createElement(
标签,
无效的
createElement(
“按钮”,
{
onClick(){
setTag(Tag==“div”?“p”:“div”);
},
},
“互换”
)
);
}
请注意,我在
标记中使用了大写字母。如果要使用JSX,则必须使用它,因为小写的第一个字母表示内置元素(您称之为标记),并在转换后引用。如果执行
操作,它将转换为
createElement('tag')
。对于大写变量,您可以将
标记
变量用作组件,因此上面JSX表单中的代码如下所示:

函数DivThatSwapsToParagraph(){
let[Tag,setTag]=useState(“div”);
返回(
交换
);
}
这是一个供你玩的游戏


请注意,在许多情况下,这可能是一种不好的模式,因此请谨慎使用。

react中没有标记。您正在使用的JSX被转换为
createElement
调用。接下来的两段代码是等效的


1234

; createElement(“div”,null,createElement(“p”,null,1234”);
如果您想以某种方式将一个元素“交换”给另一个元素,那么可以仔细观察将JSX转换为纯JavaScript时发生的情况。您可以将元素名作为字符串传递,并且可以肯定地将字符串放入变量中。所以,如果我们想将“div”替换为“p”,最好的方法是:

函数DivThatSwapsToParagraph(){
let[Tag,setTag]=useState(“div”);
返回createElement(
标签,
无效的
createElement(
“按钮”,
{
onClick(){
setTag(Tag==“div”?“p”:“div”);
},
},
“互换”
)
);
}
请注意,我在
标记中使用了大写字母。如果要使用JSX,则必须使用它,因为小写的第一个字母表示内置元素(您称之为标记),并在转换后引用。如果执行
操作,它将转换为
createElement('tag')
。对于大写变量,您可以将
标记
变量用作组件,因此上面JSX表单中的代码如下所示:

函数DivThatSwapsToParagraph(){
let[Tag,setTag]=useState(“div”);
返回(
交换
);
}
这是一个供你玩的游戏


请注意,在许多情况下,这是一种不好的模式,因此请谨慎使用。

在React中输入的任何HTML实际上都被解释为JSX

Babel向下编译JSX以响应.createElement()调用

这两个示例完全相同:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
const div = <div> Variable Div </div>
const元素=(
你好,世界!
);
常量元素=React.createElement(
“h1”,
{className:'问候语'},
“你好,世界!”
);

如果您试图将单个标记存储为变量,那么这是可能的,但只能使用在JSX中被接受为单个标记的元素

const br = <br/>;

export default function App() {
  return <div className="App">Hello{br}World</div>;
}
constbr=
; 导出默认函数App(){ 返回Hello{br}World; }
上面的代码将在HelloWorld之间出现中断

const br = <br/>;

export default function App() {
  return <div className="App">Hello{br}World</div>;
}
您也可以存储div,但它们必须有一个封闭的标记才能正常工作

示例:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
const div = <div> Variable Div </div>
const div=变量div


您也可以直接从React设置HTML,但必须指定使用。

在React中输入的任何HTML实际上都解释为JSX

Babel向下编译JSX以响应.createElement()调用

这两个示例完全相同:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
const div = <div> Variable Div </div>
const元素=(
你好,世界!
);
常量元素=React.createElement(
“h1”,
{className:'问候语'},
“你好,世界!”
);

如果您试图将单个标记存储为变量,那么这是可能的,但只能使用在JSX中被接受为单个标记的元素

const br = <br/>;

export default function App() {
  return <div className="App">Hello{br}World</div>;
}
constbr=
; 导出默认函数App(){ 返回Hello{br}World; }
上面的代码将在HelloWorld之间出现中断

const br = <br/>;

export default function App() {
  return <div className="App">Hello{br}World</div>;
}
您也可以存储div,但它们必须有一个封闭的标记才能正常工作

示例:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
const div = <div> Variable Div </div>
const div=变量div


您也可以直接从React设置HTML,但必须指定使用。

React没有标记的概念(ReactDOM可能有)。你想把a
div
改成a
p
?好的,我会咬你的。为什么?你可以做
const Tag='div'
然后在你的compo中