09-03-2021
以往的学习经验来说,在撰写前端时一定会遇到的三大巨人:HTML,掌管网页的结构、CSS,掌管网页的外观样貌、JacaScript,掌管着网页的互动逻辑,但我们都是互相引入使用。
在React的世界中却不是这麽一回事了,所有的事物都会交由==Component== 来做为基础。 我们会将与Component 相关的程序都放在一起管理,而同时也会建议使用JSX来做撰写。使用 React 并不一定要使用 JSX。
小简介:JSX不是全新的语言,而是一种语法糖(Syntatic Sugar),类似与XML的ECMAScript语法的扩充。是一种JavaScript的语法扩展。
要说JSX 有什麽不同,不如说跟HTML 有什麽相似处吧。
并且要学着开始用Component的角度思考。
一开始看到 React 一定会有个想法:啊!这跟我学的 HTML 怎麽长得不一样?
在 React 中可以选择使用 JSX 来做撰写。
JSX 的写法与 HTML 大概有 90%相似,写起来就像..
范例:
const myArtivcle = <p></p>
?这会在哪里看到呢?
答案是会在JS的档案里面喔!
JSX元素会被视为JavaScript表达式,也就是说可以使用在任何的表达式中。
使用上可以将一个JSX元素保存到一个变数中,再将此变数传递给函数,或是储存在阵列、物件中。
==巢状写法==<div></div >
是包覆文句的主要因素,少了他就不能使用了!
? 范例:
// 1-1 将JSX保存在变数中
const myArtivcle = (
<div>
<h1>天天Happy,天天学Code</h1>
</div>
)
// 1-2 将JSX保存在物件中
const myFarm = {
name: <li>NewNew Farm</li>,
field: <li>6</li>,
};
class FirstStep extends React.Component {
render() {
return (
<div>
<p>第一步</p>
<Step />
</div>
);
}
}
React 的思考逻辑,使用Component 比起 Template与显示逻辑,更能实现关注点分离的概念。
JSX 元素的属性如同HTML,
img、input、br,不需要结束标签的要在後边加一个slash /
? 举例:
<img />
<input />
<br />
不同之处
可以透过标签上的属性改变外观,但基於JavaScript的保留关键字用法,会有些许的不同。
必须以驼峰式的写法
class
必须改写成className
<h1 class="big">Hey</h1>
<h1 className="big">Hey</h1>
for
也须改写成htmlFor
在JSX中的属性名称但没有设值为true
的状况!
范例:
<input type="button" disabled />;
// 第一个虽然没有设值,但结果会与下方的结果相同
<input type="button" disabled={true} />;
换句话说,若没有属性,则预设就会为`false`
<input type="button" />;
<input type="button" disabled={false} />;
ES6 中...
使用上是迭代物件的意思,能将对应的物件迭代出来。 同时後面设定的属性会盖掉前面的相同属性
var props = {
style: "width:20px",
className: "main",
value: "我在垦丁,天气晴",
}
<FirstStep {...props} value="我在垦丁,天气晴" />
React.createElement("h1", React._spread({}, props, {value: "我在垦丁,天气晴"}), "Hello React!");
JSX的外观使用方法:{{ }}
第一个{}
是JSX 的语法,第二个{}
是JavaScript 物件。
<FirstStep style={{ color: '#FFFFFF', fontSize: '30px'}} />
在JSX 中进行js 的作用方法加上花括号 { }
范例:
// 例如在进行数字相加时
ReactDOM.render(
<h1>{2 + 3}</h1>,
document.getElementById('app')
);
在JSX 中透过inline事件的绑定来监听并处理事件
<FirstStep onClick={this.onBtn} />
****
<<: [想试试看JavaScript ] 资料型态 数字 布林 undefined null
安装 tensorflow-gpu (如果自己电脑没有 GPU 就装 CPU 版) pip inst...
------------- 告诫 某天公司电脑以为发文完成就关机 ,结果中断铁人赛---------...
今天的你和去年的你写出来的程序会是一样的吗? 程序语言会不断地更新迭代,不断地有新的功能或套件出现,...
上次我们已经学会要怎麽从资料库依照各个表取出我们想要的栏位,也可以透过条件筛选的方式过滤我们想要的资...
var myArr = ['燃面', '生菜', '花椒']; myArr.a = '雉鸡'; //...