首先我要說(shuō)下target和currentTarget的區(qū)別。
e.target是返回觸發(fā)事件的對(duì)象 e.currentTarget返回的是綁定事件的對(duì)象。
認(rèn)真看這段話:
通常情況下target和currentTarget是一致的,我們只要使用target即可,但有一種情況必須區(qū)分這兩者的關(guān)系,那就是在父子嵌套的關(guān)系中,父元素綁定了事件,單擊了子元素(根據(jù)事件流,在不阻止事件流的前提下他會(huì)傳遞至父元素,導(dǎo)致父元素的事件處理函數(shù)執(zhí)行),這時(shí)候currentTarget指向的是父元素,因?yàn)樗墙壎ㄊ录膶?duì)象,而target指向了子元素,因?yàn)樗怯|發(fā)事件的那個(gè)具體對(duì)象 。
在你的第一種情況中,可能觸發(fā)這個(gè)事件的并非是這個(gè)子元素。所以也就沒(méi)有返回你想要的那個(gè)target。
而在你的第二種情況中,可能恰巧觸發(fā)這個(gè)事件的就是含有data-name的這個(gè)text標(biāo)簽,所以也就返回了你想看到的那個(gè)target
es6中的語(yǔ)法糖,
意思都是一樣的,只是寫(xiě)法不同而已。
除了寫(xiě)法不同,沒(méi)有(任何區(qū)別),
深入研究的話,就去研究箭頭函數(shù)中的this,this的用法和原始的有點(diǎn)差別。
如果你想問(wèn)為什么要這樣寫(xiě),只能說(shuō)這是語(yǔ)法糖,或者是個(gè)人習(xí)慣。
找到了一種方法,把主題的json下載下來(lái),放到j(luò)s文件中,比如theme.js
const theme = {//主題的json數(shù)據(jù)}
export default theme
然后在vue文件中
import echarts from 'echarts/lib/echarts'
import theme from 'themepath/theme'
echarts.registerTheme('theme', theme) // 注冊(cè)主題
問(wèn)題的原因找到了:
我的代碼是因?yàn)榇嬖?遞歸導(dǎo)致的棧溢出,進(jìn)而導(dǎo)致視圖布局出錯(cuò)。我的項(xiàng)目中存在一個(gè)側(cè)邊菜單,我使用當(dāng)前路由對(duì)象的 matched
數(shù)組進(jìn)行菜單比對(duì),結(jié)果導(dǎo)致了棧溢出。
最終的解決辦法是:在比對(duì)菜單的時(shí)候優(yōu)先比對(duì)路徑(path
),如果路徑一致,則繼續(xù)比對(duì)參數(shù)(query
),修改后的代碼僅有10幾次循環(huán)操作,頁(yè)面在沒(méi)出現(xiàn)嵌套出錯(cuò)的情況了。類(lèi)似查找某人,先排除姓、再排除名,最后確認(rèn)性別,逐漸縮小循環(huán)的層級(jí)。
nginx 可以由一個(gè)特殊的 X-Accel-Redirect
頭部控制資源訪問(wèn)。
所以可以直接 proxy_pass 到 upstream, upstream 根據(jù)請(qǐng)求動(dòng)態(tài)生成文件路徑,添加到X-Accel-Redirect: /path/to/file
頭部,nginx取回上游返回后,內(nèi)部跳轉(zhuǎn)/path/to/file
, 這是一個(gè)內(nèi)部跳轉(zhuǎn),外部不可見(jiàn)的,你還可以添加 internal
指令控制該文件不可直接訪問(wèn)。
return 是條語(yǔ)句,不能直接打印
function x(){
return 2
}
console.log(x())
垂直居中沒(méi)問(wèn)題的,看看你.login的高度,你.login的高度估計(jì)是被子元素?fù)纹鸬?,高度不夠,所以高度為子元素高度,沒(méi)辦法居中的,你要設(shè)置.login的高度才行
三目表達(dá)式:hasLocation ? this.getStoreList() : this.getLocationSync().then(this.getStoreList())
;
所謂的手機(jī)配置就是一個(gè)js function
,將其px
轉(zhuǎn)換為rem
.
所以你只要在項(xiàng)目中使用rem
就可以了,把body
的font-size
當(dāng)成100px
.
如果使用第三方組件后,發(fā)現(xiàn)沒(méi)有高清處理,那么就將那個(gè)高清js
放到index.html
中就可以了
你可能是受控組件的受害者,為你的表單添加onChange
事件觸發(fā)setState修改你相應(yīng)state值。
在大陸地區(qū)出現(xiàn)這種情況的,絕大部分是運(yùn)營(yíng)商或其代理商投放的 PUSH 廣告,由于你提供的信息太少,這里無(wú)法作出準(zhǔn)確判斷。
你可以掛上境外 VPN 測(cè)試一下,若沒(méi)有問(wèn)題,則 99% 可判定是 PUSH 廣告。
網(wǎng)上有很多解決辦法,常用的如
發(fā)現(xiàn)最後是編輯器問(wèn)題~
@donglegend 你好,謝謝,基本上可以,但是這種方式感覺(jué)有缺陷,如下:
//假設(shè)我想在1s中完成動(dòng)畫(huà)(滑動(dòng)250px)
//那么我需要函數(shù)執(zhí)行多少次呢?
//很顯然,如果我想動(dòng)畫(huà)看上去越順滑,那必須每次移動(dòng)的像素就越小,所以函數(shù)執(zhí)行越頻繁;
//相反,如果函數(shù)間隔時(shí)間越大,動(dòng)畫(huà)會(huì)非常難看(一次移動(dòng)的像素太多)
問(wèn)題:假設(shè)我滑動(dòng)的距離足夠大(1000px),執(zhí)行的時(shí)間足夠短(0.3s),看上去動(dòng)畫(huà)要足夠順滑(每次移動(dòng)5px),那么函數(shù)需要多長(zhǎng)時(shí)間執(zhí)行一次呢? 。0.3 / (1000 / 5) ,0.3s要執(zhí)行200次函數(shù),每 0.0015s 執(zhí)行一次,這么頻繁的執(zhí)行函數(shù)到底有沒(méi)有問(wèn)題呢?如果每次只能移動(dòng)1px呢?
再者就是這些計(jì)算麻煩,不如css3動(dòng)畫(huà)來(lái)得方便。
我用css實(shí)現(xiàn)的動(dòng)畫(huà)和js鉤子實(shí)現(xiàn)的作比較,都是0.3s,總感覺(jué)css的動(dòng)畫(huà)要快,要順滑。
<template>
<transition
v-on:before-enter="beforeEnter"
v-on:enter="enter"
v-on:leave="leave"
>
<slot></slot>
</transition>
</template>
<script>
export default {
name: 'animation',
data() {
return {
enterTimer: null,
leaveTimer: null
}
},
methods: {
beforeEnter: function(el) {
//設(shè)置滑塊的初始位置(滑塊的寬度)
el.style.bottom = '-250px'
},
enter: function(el, done) {
clearInterval(this.leaveTimer)
let _v = 0
//假設(shè)我想在1s中完成動(dòng)畫(huà)(滑動(dòng)250px)
//那么我需要函數(shù)執(zhí)行多少次呢?
//很顯然,如果我想動(dòng)畫(huà)看上去越順滑,那必須每次移動(dòng)的像素就越小,所以函數(shù)執(zhí)行越頻繁;
//相反,如果函數(shù)間隔時(shí)間越大,動(dòng)畫(huà)會(huì)非常難看(一次移動(dòng)的像素太多)
this.enterTimer = setInterval(() => {
if (_v < 250) {
_v += 2.5
} else {
_v = 250
clearInterval(this.enterTimer)
done()
}
el.style.opacity = _v
el.style.transform = `translateY(-${_v}px)`
}, 3)
},
leave: function(el, done) {
clearInterval(this.enterTimer)
let _v = 250
this.leaveTimer = setInterval(() => {
if (_v > 0) {
_v -= 2.5
} else {
_v = 0
clearInterval(this.leaveTimer)
done()
}
el.style.opacity = _v
el.style.transform = `translateY(-${_v}px)`
}, 3)
}
}
}
</script>
之前一直以為官方價(jià)紹了兩種方式是等價(jià)的,并且兩種方式對(duì)應(yīng)的demo不是等效的,感覺(jué)這是巨大的一個(gè)坑
一行一行讀取,不占用很大內(nèi)容
看看 fs 有關(guān)的 readStream
吧,
有沒(méi)有可能是 safari 設(shè)置中 禁用了 javascript(系統(tǒng)設(shè)置-safari-高級(jí))
謝謝回答。我忽略了。
config.data = {
accessToken:JSON.parse(localStorage.getItem("joywareUser")).accessToken,
}
應(yīng)該是這樣。直接config.data.accessToken 當(dāng)然是undefined。。。。
在自動(dòng)化執(zhí)行的腳本選擇yes/no的簡(jiǎn)直是反人類(lèi)的設(shè)計(jì)。腳本就是為了不打斷用戶,中途不應(yīng)該再讓用戶確認(rèn)。
你先看看你的腳本有沒(méi)有非交互式參數(shù),如果沒(méi)有的話必須重寫(xiě)。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(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
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(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ū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(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)師。