style用法、封裝陣列遍歷、改變資料再次生成真實dom、函式式元件與類元件、物件的處理
React的style用法
給jsx程式碼中新增樣式,需要將class(保留字) ==> className形式!
給jsx程式碼中新增內聯樣式,style={ {} }
<head/>
<style>
.red{
color:red
}
</style>
</head>
<body>
<div id="app"></div>
<script type="text/babel">
let arr = [10, 20, 30, 40, 50]
let arrIndex = 0
function show(arr){
return arr.map((item,index)=>{
return <p
key={index}
className={ arrIndex === index ? "red" : ""}
onClick={ ()=>{arrIndex = index; render()} }
>{item}</p>
})
}
render()
function render(){
const a =
<div>
{
show(arr)
}
</div>
ReactDOM.render(a,document.querySelector("#app"))
}
</script>
</body>
封裝陣列的遍歷
封裝該函式的時候需要將其通過內部的return返回遍歷後的新陣列,否則瀏覽器預設返回undefined,不會被瀏覽器渲染
<div id="app"></div>
<script type="text/babel">
let arr = [10, 20, 30]
let arr2 = ["a","b","c"]
function showList(arr){
return arr.map((item,index)=>{
return <p key={index}>{item}</p>
})
}
const a =
<div>
{showList(arr)}
{showList(arr2)}
</div>
// <div>
// {
// arr.map((item,index)=>{
// return <p key={index}>{item}</p>
// })
// }
// {
// arr2.map((item,index)=>{
// return <p key={index}>{item}</p>
// })
// }
// </div>
ReactDOM.render(a,document.querySelector("#app"))
</script>
資料改變後再次呼叫渲染真實dom
return後面返回一段jsx程式碼的時候,建議後面需要新增()
因為return解析當前行的程式碼,若後面沒程式碼,那就為空
React只是一個view檢視層框架,又不是完整的mvvm框架。當資料改變,檢視肯定不會更新。
那麼就需要給渲染真實dom的時候封裝一個函式,在更改資料後再呼叫一次,使頁面資料進行更新
<head>
<style>
.red{
color:red
}
</style>
</head>
<body>
<div id="app"></div>
<script type="text/babel">
let arr = [10, 20, 30, 40, 50]
let arrIndex = 0
function show(arr){
return arr.map((item,index)=>{
return <p
key={index}
className={ arrIndex === index ? "red" : ""}
onClick={ ()=>{arrIndex = index; render()} }
>{item}</p>
})
}
render()
function render(){
const a =
<div>
{
show(arr)
}
</div>
ReactDOM.render(a,document.querySelector("#app"))
}
</script>
函式式元件接受形參
函式式元件內部不能訪問this,通過引數props可以接受外部傳入的屬性。
如果外部傳入的屬性需要是number型別,age={number值}
<div id="app"></div>
<script type="text/babel">
const App = props =>{
return (
<div>
{/*Panda === {props.sex} === {props.name} === {props.age}*/}
{/*Panda === {props.a.sex} === {props.b.name} === {props.b.age}*/}
Panda === {props.sex} === {props.name} {/*後面宣告的變數將前面的覆蓋了*/}
</div>
)
}
let a ={
sex:"男",
name:"Panda"
}
let b = {
name :"Big-Panda ",
age:20
}
ReactDOM.render(<App {...a} {...b} />,document.querySelector("#app")) //展開後的樣子就是第一種
</script>
類元件接受形參
在類元件中,通過this就可以獲取到元件的例項本身,其中this.props.xxx就可以獲取到外部傳入的屬性值了。
<div id="app"></div>
<script type="text/babel">
class App extends React.Component{
render(){
return (
<div>
Panda === {this.props.a.name} === {this.props.sex} === {this.props.age}
</div>
)
}
}
let a = {
name:"Panda"
}
let b = {
age:20
}
ReactDOM.render(<App sex={"man"} a={a} {...b} />,document.querySelector("#app"))
</script>
物件的處理
找出物件的鍵:Object.keys(json).map(xxxx)
<div id="app"></div>
<script type="text/babel">
let obj = {a:1,b:2,c:3,d:4}
class App extends React.Component{
render(){
return (
<div>
{
Object.keys(obj).map((item)=>{
return <p key={item}>{item}:{obj[item]}</p>
})
}
</div>
)
}
}
ReactDOM.render(<App/>,document.querySelector("#app"))
</script>
相關文章
- JS-陣列、函式、類與物件JS陣列函式物件
- 陣列處理函式陣列函式
- react hooks 如何自定義元件(react函式元件的封裝)ReactHook元件函式封裝
- 【封裝小技巧】列表處理函式的封裝封裝函式
- React函式式元件和類元件[Dan]React函式元件
- 遍歷陣列物件陣列物件
- 【譯】 React官方:函式元件與類元件的差異 ?React函式元件
- 【封裝小技巧】數字處理函式的封裝封裝函式
- React 是如何分辨函式式元件和類元件的?React函式元件
- python遍歷迭代器自動鏈式處理資料Python
- [譯]React函式元件和類元件的差異React函式元件
- 函式式元件函式元件
- JS中陣列與物件的遍歷方法例項JS陣列物件
- vue元件封裝及父子元件傳值,事件處理Vue元件封裝事件
- JS中遍歷陣列、物件的方式JS陣列物件
- Hyperf 獲取 Swoole\Server 的物件以及函式類的封裝Server物件函式封裝
- js資料處理——遍歷JS
- 學習javaScript必知必會(3)~陣列(陣列建立,for...in遍歷,輔助函式,高階函式filter、map、reduce)JavaScript陣列函式Filter
- 封裝一個元件 + 函式惰性思想(重寫應用)封裝元件函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- 陣列排序函式-php陣列函式(一)陣列排序函式PHP
- 遍歷物件和陣列的方法總結物件陣列
- 遍歷陣列和物件的方法都有哪些?陣列物件
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- 前端如何優雅處理類陣列物件?前端陣列物件
- shell--函式與陣列函式陣列
- 前端Vue:函式式元件前端Vue函式元件
- 前端簡潔並實用的工具類函式封裝前端函式封裝
- 陣列遍歷陣列
- Vue函式式元件的應用Vue函式元件
- Flink處理函式實戰之三:KeyedProcessFunction類函式Function
- Flink處理函式實戰之二:ProcessFunction類函式Function
- 記如何解決vue父元件改變不了子元件props傳過來的陣列Vue元件陣列
- 動態陣列ArrayList的初始化,新增資料,與遍歷陣列
- 當 Vue 處理陣列與處理純物件的方式一樣Vue陣列物件
- Dart函式、類和運算子-處理資訊Dart函式
- Vue元件實現函式防抖Vue元件函式
- Vue實現函式防抖元件Vue函式元件