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;
}
上面的代码将在Hello和World之间出现中断
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;
}
上面的代码将在Hello和World之间出现中断
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可能有)。你想把adiv
改成ap
?好的,我会咬你的。为什么?你可以做const Tag='div'
然后在你的compo中