如果你用了<input defaultValue={Value}/>, react是不會(huì)管理input的值,修改可以通過(guò)找到input,通過(guò)input.value = newValue去修改
如果你用了<input value={this.state.value} onChange={this.handleChange}/>,這時(shí)候是react來(lái)管理input的value,需要通過(guò)handleChange方法去this.setState({value: e.target.value})
// 如何判斷元素是否在可視區(qū)域
// 方法一
function isInSight2(ele) {
var visibleArea = document.documentElement.clientHeight;//屏幕可視區(qū)域的高度
var eleTop = ele.offsetTop;//元素相對(duì)于文檔頂部的距離
var scrollTop = document.documentElement.scrollTop;// 獲取瀏覽器窗口頂部距離文檔頂部的距離(滾動(dòng)條滾動(dòng)的距離)
return eleTop - scrollTop < visibleArea ? true : false
}
// 方法二 https://segmentfault.com/a/1190000010744417
function isInSight(el) {
const bound = el.getBoundingClientRect(); // 圖片到頂部可視區(qū)域的高度
const clientHeight = window.innerHeight;// 可視區(qū)域的高度
//如果只考慮向下滾動(dòng)加載
//const clientWidth=window.innerWeight;
return bound.top <= clientHeight + 100;
}
其實(shí)這個(gè)圖叫做骨架屏,由于vue在數(shù)據(jù)渲染出來(lái)之前會(huì)出現(xiàn)NAN或者undefined,用戶體驗(yàn)感非常不好,我們可以巧妙的避免這個(gè)問(wèn)題,在請(qǐng)求接口返回?cái)?shù)據(jù)之前顯示骨架屏,待數(shù)據(jù)請(qǐng)求成功返回,隱藏骨架屏,顯示數(shù)據(jù)。
/*設(shè)置全屏的骨架屏背景圖*/
<div class="skeleton" v-if="skeleton"></div>
created() {
/*是否顯示骨架屏*/
skeleton: true
}
methods() {
fetchData().then(res => {
console.log('數(shù)據(jù)請(qǐng)求成功')
/*隱藏骨架屏*/
this.skeleton = false
}).catch(err => {
this.skeleton = false
})
}
v-html是不會(huì)編譯的
官網(wǎng)上寫著:
‘注意:內(nèi)容按普通 HTML 插入 - 不會(huì)作為 Vue 模板進(jìn)行編譯 。如果試圖使用 v-html 組合模板,可以重新考慮是否通過(guò)使用組件來(lái)替代?!?/p>
是的。ES6的對(duì)象屬性的簡(jiǎn)寫方式。
http://es6.ruanyifeng.com/#do...
https ?
你好這個(gè)問(wèn)題解決了嗎
你這個(gè)打印怎么出來(lái)的?return并不會(huì)打印啊老鐵.
所以你看到的欺騙你了.
for(var i=0;i<10;i++){
console.log((function(){
console.log(i);
return "abvdef";
})());
}
估計(jì)刪不了,只要有 iframe,瀏覽器就會(huì)在里面創(chuàng)建基本的 html 文檔,即使里面什么都沒(méi)有,你可以直接把 iframe 給刪了,然后數(shù)據(jù)單獨(dú)保存下:
let iframes=document.getElementsByTagName('iframe')[0].parentNode.removeChild(document.getElementsByTagName('iframe')[0]);
如圖,這是當(dāng)前頁(yè)面的 iframe:
表示 address= 加上除了分好外的東西??
嗯嗯,[^;] 表示匹配一個(gè)不為 ; 的字符,僅僅匹配一次
那個(gè)星號(hào)是啥,加了星號(hào)能去除shanghai,不加的話就取了一個(gè)s
*表示匹配任意次,默認(rèn)是符合匹配規(guī)則的情況下,越多越好,所以匹配到了后面全部的,直到;
不加 * 就是上面的,默認(rèn)僅僅匹配一次,所以只能匹配到一個(gè) s
for (let x of collection) {}
等價(jià)于for (let x of collection[Symbol.iterator]()) {}
效果:遍歷迭代器。
Collection類中
// 這是個(gè)生成器函數(shù)
*[Symbol.iterator]() {
yield *this.items.values();
}
而執(zhí)行生成器函數(shù)會(huì)返回一個(gè)迭代器。iter = collection[Symbol.iterator]();
for (let x of collection[Symbol.iterator]()) {}
等價(jià)于for (let x of iter) {}
來(lái)看iter這個(gè)迭代器*[Symbol.iterator]() {}生成器函數(shù)內(nèi)yield *表達(dá)式執(zhí)行了this.items.values方法,返回1個(gè)迭代器,每次遍歷該迭代器返回?cái)?shù)組每一項(xiàng)的值。(Array.prototype.values() 方法 chrome未實(shí)現(xiàn)所以報(bào)錯(cuò))
那么:for (let x of iter) {}
等價(jià)于for (let x of collection.items) {}
不大好講。。感覺(jué)至少得先了解迭代器和生成器的概念。。。
貼個(gè)參考鏈接吧
至少在我用的時(shí)候(17年10月份)還未提供該功能……插件也許會(huì)有……請(qǐng)使用Git自帶的diff或者ToitorseGit里面的類似工具……
找到了一個(gè)插件~
https://marketplace.visualstu...
好吧,好像確實(shí)有問(wèn)題
后來(lái)又嘗試寫了一下
type2 這個(gè)節(jié)點(diǎn)就有5個(gè)所有葉子節(jié)點(diǎn)tr 元素 ,并記錄下這個(gè)元素。然后遍歷這一層的節(jié)點(diǎn),如果有子節(jié)點(diǎn)則添加 <td colspan="x">,x 為上面所有葉子節(jié)點(diǎn)數(shù)量;如果沒(méi)有子節(jié)點(diǎn)則添加 <td rowspan="y"> y 為 “合并樹的最大深度 - 當(dāng)前深度” (表頭畫完)const appendTd = (tr, hasChild, size, name) => {
const td = document.createElement('td')
if (hasChild) {
td.setAttribute('colspan', size)
} else {
td.setAttribute('rowspan', size)
}
td.innerText = name
tr.appendChild(td)
}
//------------ 原答案 ----------------
這里只提供一種思路,詳細(xì)代碼就不寫了
// const data = ...原始數(shù)據(jù)
let table = {}
data.map((item) => {
table = {...table, ...item}
})
console.log(table)
首先利用 es6 解構(gòu),將所有對(duì)象具有的屬性合并起來(lái),你就可以得到一個(gè)完整的表頭的結(jié)構(gòu),這里數(shù)據(jù)不重要。
{ name: 'BBB',
age: 12,
score:
{ type1: { item1: 12, item2: 23, item3: 23 },
type2: { item4: 12, item5: 23, item6: 23 } } }
之后一層一層遍歷這個(gè)對(duì)象樹,就能得到整個(gè)表頭了
表頭畫好后,用剛剛得到的表頭去挨個(gè)遍歷每個(gè)數(shù)據(jù)項(xiàng),并且畫單元格,沒(méi)有數(shù)據(jù)不填。
你已經(jīng)在 app.js 里示例化過(guò) Vue 了,為什么還要在 balde 模板里再次進(jìn)行示例化呢?
直接在 blade 模板中引入編譯后的 app.js,就可以使用 Vux 提供的組件了
PS: Vue 是個(gè)好框架 :)
for (var i=1; i<=ss.length; i++)循環(huán)條件不對(duì),i的變化范圍應(yīng)該是從0到ss.length - 1,不過(guò)這個(gè)不會(huì)導(dǎo)致報(bào)錯(cuò);
arr[i]['id']=i;arr[i]['title']=a; arr是一個(gè)空數(shù)組,所以arr[i]是undefined,undefined['id']和undefined['title']當(dāng)然會(huì)報(bào)錯(cuò);
修改如下:
ss = s.split(",");
console.log(ss)
arr = [];
for (var i=0; i<ss.length; i++) {
a=ss[i]
arr[i] = {
id: i,
title: a
}
}
console.log(arr)1.this變量訪問(wèn)在運(yùn)行時(shí)候才會(huì)被綁定
2.其他變量訪問(wèn)在定義(位置)時(shí)候被綁定
看這段代碼應(yīng)該可以理解一部分
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return this.name;
}
};
var fun = object.getNameFunc;
console.log(object.getNameFunc())//My Object
console.log(fun())// The Window
我記得weex debug是不支持windows的,不知道是不是記錯(cuò)了...
一個(gè)JS庫(kù)的名字underscorejs,程序里用法就是_.map()。
http://underscorejs.org/
車載電腦?嵌入式Android?
問(wèn)題解決了,workerman論壇上的一個(gè)哥們提醒了我是死循環(huán)導(dǎo)致進(jìn)程一直處于busy狀態(tài)。把php代碼中的死循環(huán)去掉:
// while (true) {
$connection->send(根據(jù)接收到的客戶端的$data發(fā)送要發(fā)送的消息);
// usleep(1000000); // 睡1秒 其實(shí)這個(gè)也可以去掉
// }
前端代碼中增加定時(shí)向后端發(fā)送消息的代碼,這樣后端就可以根據(jù)監(jiān)聽到的前端發(fā)送的消息往前端推送消息。worker進(jìn)程只有在發(fā)送消息時(shí)才會(huì)處于busy狀態(tài),否則就會(huì)idle。之前就是因?yàn)樗姥h(huán)一直發(fā)送消息(busy),這樣就導(dǎo)致前端頁(yè)面每次加載都會(huì)導(dǎo)致后端創(chuàng)建一個(gè)新的進(jìn)程(原來(lái)的worker進(jìn)程一直沒(méi)釋放)。我之前對(duì)后端往前端推送消息的業(yè)務(wù)邏輯和技術(shù)細(xì)節(jié)沒(méi)想清楚,哎,自己給自己挖了個(gè)坑。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。