鍍金池/ 問答/ HTML問答
艷骨 回答

可以看看這個(gè):

https://cn.vuejs.org/v2/guide...

P標(biāo)簽被rerender的原因是Date.now()是一個(gè)method,雖然它沒有被定義在實(shí)例的methods里面。
method會(huì)在每一次template重新渲染的時(shí)候觸發(fā)。

如果不想Prerender,可以用computed。

紓惘 回答
axios.post('/user/attention', 'beUserId='+userId)
        .then(response => {
            console.log(response.data)
    })

善用文檔

https://www.npmjs.com/package...

const WebSocket = require('ws');
 
const wss = new WebSocket.Server({ port: 8080 });
 
wss.on('connection', function connection(ws, req) {
  const ip = req.connection.remoteAddress;
});

但是IP從來都不適合用來做用戶鑒別,畢竟NAT大行其道,整個(gè)小區(qū)可能都是一個(gè)IP。還是說是想給每個(gè)用戶分配id,然后知道下線用戶的id?那可以這樣

wss.on('connection', ws => {
  const id = getUUID();
  
  ws.on('close', (code, message) => {
    console.log(`user ${id} has left`);
  };
});

當(dāng)然聊天室肯定要有登錄界面,onmessage取出賬號(hào)存給id也可以。總之bookkeeping是要自己做的,ws包不會(huì)幫你做。

貼代碼請用markdown,方便你我他。

忘了我 回答

ref可以動(dòng)態(tài),只是這種對應(yīng)關(guān)系你自己要定義好,寫了個(gè)例子你可以參考下。https://jsfiddle.net/j6xkmvcy/

帥到炸 回答

把a(bǔ)jax和初始化圖標(biāo)都放在mounted里

mounted(){
      this.$axios.get(url).then(res => {
        this.initEcharts();
      });
    }
逗婦惱 回答

bbb.com中的cookie中的domain不寫,這樣aaa.com就可以拿到了,但這樣做并不好

不將就 回答

js有這樣一個(gè)特性,如果你給某個(gè)變量a賦值b而且這個(gè)值是一個(gè)對象字面量比如{key:100}的時(shí)候,那么你對賦值后的變量a的key屬性修改,那么b也會(huì)相應(yīng)的變化,但是如果你再對a賦值c,那么b是不會(huì)變化的。復(fù)雜類型數(shù)據(jù)變量本質(zhì)上就是指針,如果你修改了變量內(nèi)部的屬性,那么就是直接修改指針指向的內(nèi)存中的值,所以另一個(gè)同樣指向該地址的值就會(huì)發(fā)生變化,但是如果你重新賦值,那么變量a就重新指向另一個(gè)地址,僅此而已,注意下,基本類型不是指針

陌南塵 回答

這成遞歸組件了,把name: 'content'去掉

懶洋洋 回答

關(guān)鍵字 qqwry 應(yīng)該個(gè)個(gè)語言都有實(shí)現(xiàn). 這種速度最快, 成本最低, 準(zhǔn)確率較好

萌面人 回答

推薦array-to-tree npm 包

var arrayToTree = require('array-to-tree');
arrayToTree(COMMENT_MOCK_DATA_ORIGIN, {
  parentProperty: 'answerId'
})
怣人 回答

這個(gè)不能格式化React jsx吧,換個(gè)插件格式化吧
試試rc-beautify

執(zhí)念 回答

都是自己寫的彈出層,沒有為微信給的摸態(tài)框

而且京東用的是他們自己框架Taro

祈歡 回答

可以嘗試一下利用回調(diào)函數(shù),默認(rèn)展示全部tooltip,當(dāng)鼠標(biāo)移動(dòng)到上面時(shí)隱藏該數(shù)據(jù)項(xiàng)的tooltip

囍槑 回答

你的輸出格式應(yīng)該有問題,起碼
label: 'AAA', department:'AAA-D1', office: 'AAA-D1-O1', pass: 6, onhold: 15, // company level 是不合理的,最多是label: 'AAA', pass: 6, onhold: 15, // company level
如果數(shù)據(jù)能夠保證全是這樣的結(jié)構(gòu)(只有如上的3級(jí)),其實(shí)還是比較好處理的。

var moriginalData= [
        { company: 'AAA', department:'AAA-D1', office: 'AAA-D1-O1', pass: 1, onhold: 3},
        { company: 'AAA', department:'AAA-D1', office: 'AAA-D1-O2', pass: 3, onhold: 5},
        { company: 'AAA', department:'AAA-D2', office: 'AAA-D2-O1', pass: 2, onhold: 7},
        { company: 'BBB', department:'BBB-D1', office: 'BBB-D1-O1', pass: 1, onhold: 3},
        { company: 'BBB', department:'BBB-D2', office: 'BBB-D2-O1', pass: 4, onhold: 3},
        { company: 'BBB', department:'BBB-D3', office: 'BBB-D3-O1', pass: 1, onhold: 3}
      ];
function a2o(originalData){
    var outData=[];
    var outObj={};
    for(var i=0;i<originalData.length;i++){
        var company= originalData[i].company;
        var department= originalData[i].department;
        var office={label:originalData[i].office, pass:originalData[i].pass, onhold:originalData[i].onhold};
        if(outObj[company]===undefined){
            outObj[company]={childrenKey:[], pass:0, onhold:0};
        }
        if(outObj[company][department]===undefined){
            outObj[company][department]={children:[], pass:0, onhold:0 };
            outObj[company].childrenKey.push(department)
        }
        outObj[company][department].children.push(office);

        outObj[company][department].pass=outObj[company][department].pass+office.pass;
        outObj[company].pass=outObj[company].pass+office.pass;

        outObj[company][department].onhold=outObj[company][department].onhold+office.onhold;
        outObj[company].onhold=outObj[company].onhold+office.onhold;
    }
    for( var com in outObj){
        var tmpA={label:com, pass:outObj[com].pass, onhold:outObj[com].onhold, children:[]};
        for (var j=0; j<outObj[com].childrenKey.length; j++ ){
            var tD=outObj[com][ outObj[com].childrenKey[j] ];
            tmpA.children.push({label:outObj[com].childrenKey[j] ,
                                pass:tD.pass , 
                                onhold:tD.onhold ,
                                children:tD.children} );
        }
        outData.push(tmpA);
    }
    return outData;
}   

var treeDate=a2o(moriginalData)
console.log(treeDate);