在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 我想在render前加載圖片放在state里面,然后再render,但是rend

我想在render前加載圖片放在state里面,然后再render,但是render依然慢

componentWillMount() {
        const _self = this;
        var qs = (location.search.length>0?location.search.substring(1):"");
        var args = {};
        var items = qs.length?qs.split("&"):[];
        var item = null;
        var name = null;
        var value = null;

        var len = items.length;
        for (var i = 0; i < len; i++) {
            item = items[i].split("=");
            name = decodeURIComponent(item[0]);
            value = decodeURIComponent(item[1]);
            if (name.length) {
                args[name] = value;
            }
        }
        let keyValue = args['key'];

        console.log('渲染開始之前 == ', keyValue)

        _self.setState({
            //url: 'http://static.kube.univer'+keyValue,
        })
    }
<div
                        className={'image_describe'}
                    >
                        <div className={'image_describe_information'}>
                            <div>圖片尺寸</div>
                            <div
                            >{image}</div>
                        </div>
                    </div>
回答
編輯回答
執(zhí)念

componentWillMount已經(jīng)在16.3版本開始要廢棄了。
雖然你在render前設(shè)置了state,但依然是url,并沒有將圖片數(shù)據(jù)放在state中,而在render中依然要通過網(wǎng)絡(luò)加載圖片。
那么你可以使用load-lazy組件。這樣效果會好很多。

2017年1月22日 20:46
編輯回答
有你在

render依然慢是什么意思? 你是怎么感知到慢的。 另外不建議這種方式去預(yù)先加載資源,方式有很多。 你可以去網(wǎng)上搜,很多的。

再者就是你非要這么做,那還是建議你把代碼放到componentDidMount或者在setState的時候判斷下當(dāng)前組件是否已經(jīng)正常掛載(mounted)

2018年7月8日 00:33
編輯回答
瞄小懶

加載圖片的速度主要看網(wǎng)速。
還有永遠(yuǎn)不要在componentWillMount里調(diào)用setState

2017年8月13日 20:20
編輯回答
莫小染

姿勢不對啊,

2017年10月12日 17:48