javascript - react 組件中的虛擬DOM 操作
問題描述
闡述: 本人是 reactJS 的初學(xué)者 ;需求如下: 1、react 組件 aa.jsx
var React = require(’react’); var aaa = React.createClass({render: function(){ return (<p ref='username' className='comment2'> aaaaaaaaa</p> );} }); module.exports = aaa;
2、react 組件 bb.jsx
var React = require(’react’); var aaa = React.createClass({render: function(){ return (<p ref='username' className='comment3'> bbbbbbbbbbbbbbb</p> );} }); module.exports = bbb;
3、react 主入口 main.jsx 需要 根據(jù) 一個(gè) json 文件來加載 所需的組件
json ={ 'data' : [{ 'page' : 'aa'},{ 'page' : 'bb'},{ 'page' : 'cc'} ]} 在主函數(shù)這里 我用了一個(gè)for 循環(huán) for (var i=0 ; i< data.length ; i++){var page = require(’./components/’+ data[i][’page’] +’.jsx’); }
但是問題來, 在這里的page 都是 一個(gè)個(gè)的 函數(shù)。 怎樣 將其中的 dom 塊(p 元素) 取出來 一個(gè)個(gè)有序的 添加到 index.html 頁面上的 某個(gè)指定的 dom元素中去 。
問題解答
回答1:首先我不明白的是,你的 aa.jsx 和 bb.jsx 既然那么像,為什么還寫兩個(gè)(當(dāng)然也可能是你為了方便寫例子)。既然是多個(gè)不同的文件,它就是不同的 React 組件,如果只是想把它們都渲染在某個(gè) DOM 下,直接把它們放到一個(gè)數(shù)組就好。
下面的代碼我沒有測(cè)試,但應(yīng)該是能用的
const components = [];for (var i=0 ; i< data.length ; i++){ var Page = require(’./components/’+ data[i][’page’] +’.jsx’); components.push(<Page />);}
在要嵌入的地方,JSX 代碼
<FatherComponent> {components}</FatherComponent>
如果是要隨時(shí)更新它,重新渲染就行了,可以用 this.state.components
你可以來看看我們翻譯的 React 文檔
回答2:這跟虛擬dom沒關(guān)系,雖然我不知道你為什么這樣用~但你這樣用法就是錯(cuò)的!
相關(guān)文章:
1. docker-compose中volumes的問題2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. boot2docker無法啟動(dòng)4. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?5. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.6. javascript - mock.js可以存儲(chǔ)數(shù)據(jù)嗎7. java - SSH框架中寫分頁時(shí)service層中不能注入分頁類8. nignx - docker內(nèi)nginx 80端口被占用9. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時(shí)間會(huì)消失是什么情況?10. mac里的docker如何命令行開啟呢?

網(wǎng)公網(wǎng)安備