為什么不用button元素?
button元素可以用onclick屬性啊。
v-show當(dāng)頁(yè)面進(jìn)來(lái)時(shí)就渲染了 只不過(guò)是用css display:none屬性隱藏掉了,當(dāng)然不會(huì)刷新了。
建議你去看看 v-if和v-show的區(qū)別
{
path: '*',
redirect: '/recommend'
},
樓主,如果你已經(jīng)排好序的話,是不是要這個(gè)效果:
var newDataArray = dataList.reduce((target,current)=>{
if(target[target.length-1] == null || target[target.length-1][target[target.length-1].length - 1].categoryName !== current.categoryName) {
target.push([current])
} else {
target[target.length-1].push(current)
}
return target
}, []);
console.log(newDataArray)沒有css-loader你可以單獨(dú)安裝,這種問(wèn)題應(yīng)該是不同依賴環(huán)境造成的。
或者簡(jiǎn)單粗暴,把node卸載了,裝你同事那個(gè)版本
debounce和throttle是目前用得最廣泛的,具體可見樓上的一堆收藏;或者我也寫了一個(gè)簡(jiǎn)易版的,用下面的函數(shù)包裹點(diǎn)擊回調(diào),如果前一次請(qǐng)求尚未結(jié)束,新請(qǐng)求會(huì)和舊請(qǐng)求一起返回。這樣的話回調(diào)要返回Promise
const debounceAsync = originalFunction => {
let currentExcution = null;
const wrappedFunction = async function () {
// 1. locked => return lock
if (currentExcution) return currentExcution;
// 2. released => apply
currentExcution = originalFunction.apply(this, arguments);
try {
return await currentExcution;
}
finally {
currentExcution = null;
}
};
return wrappedFunction;
};
用法
const sleep = (ms = 0) => new Promise(resolve => setTimeout(resolve, ms));
const debounceAsync_UNIT_TEST = async () => {
const goodnight = debounceAsync(sleep);
for (let i = 0; i < 8; i++) {
goodnight(5000).then(() => console.log(Date()));
await sleep(500);
}
console.warn('Expected output: 8 identical datetime');
};
看人家返回給你的是什么內(nèi)容了,如果是blob,這樣
jsFileDownload (filename, data, mime) {
let blob = new Blob([data], {type: mime || 'application/octet-stream'})
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(blob, filename)
} else {
var blobURL = window.URL.createObjectURL(blob)
var tempLink = document.createElement('a')
tempLink.style.display = 'none'
tempLink.href = blobURL
tempLink.setAttribute('download', filename)
if (typeof tempLink.download === 'undefined') {
tempLink.setAttribute('target', '_blank')
}
document.body.appendChild(tempLink)
tempLink.click()
document.body.removeChild(tempLink)
window.URL.revokeObjectURL(blobURL)
}
}
如果是url,那就很簡(jiǎn)單了,沒必要我寫了
1.給對(duì)話框元素添加一個(gè)屬性isEdit,點(diǎn)擊添加按鈕的時(shí)候給這個(gè)屬性設(shè)置為false,點(diǎn)擊編輯的時(shí)候給這個(gè)屬性設(shè)置為true,在保存的時(shí)候獲取這個(gè)屬性判斷
2.當(dāng)然也可以把isEdit存為全局變量
你這個(gè)壓縮圖片有問(wèn)題
你this.compress(vm.temp.base64Img);傳入的是base64格式的字符串canvas.width = img.width; canvas.height = img.height;這里base64格式的字符串是獲取不到寬高的
這句canvas.toDataURL("image/jpeg", 0.15)你之前沒有把圖片畫到canvas上所以的canvas上是空的
callback:
compress(base64img,callback) {
var img = new Image();
img.src = base64img;
img.onload = function(){
var width = img.width;
var height = img.height;
var canvas = document.createElement("canvas");
canvas.width = width;
canvas.height = height;
canvas.getContext("2d").drawImage(img,0,0,width,height);
callback(canvas.toDataURL("image/jpeg", 0.15))
}
}
//調(diào)用
vm.compress(vm.temp.base64img, function (base64img) {
uploadImage({ base64img }).then(response => {
const data = response.data;
//...
});
});
promise:
function compress(base64img, callback) {
return new Promise(function (resolve) {
var img = new Image();
img.src = base64img;
img.onload = function () {
var width = img.width;
var height = img.height;
var canvas = document.createElement("canvas");
canvas.width = width;
canvas.height = height;
canvas.getContext("2d").drawImage(img, 0, 0, width, height);
resolve(canvas.toDataURL("image/jpeg", 0.15))
}
})
}
//調(diào)用
vm.compress(vm.temp.base64img)
.then(base64img => uploadImage({ base64img }))
.then(response => {
const data = response.data;
//...
});jquery對(duì)象和dom對(duì)象,jquery方法和dom方法了解一下
<a>你給 state.text 設(shè)置一個(gè)初始值看可以展示嗎?<b>還有那個(gè)InputItem的屬性名不是value而是val嗎?antd路人答
在antd的doc上看并未發(fā)現(xiàn)inputItem組件value屬性有一個(gè)別名叫val的。樓主還是按照第<a>的方式看下可以嗎?不行的話就是val屬性有問(wèn)題了
我找到答案了,是我的錯(cuò)。我取出的時(shí)候應(yīng)該:
this.$route.params.is_used這樣取出.
你這個(gè)寫法應(yīng)該是 vue-router 吧, vue-router 常見有三種格式的路由守衛(wèi):
1) 全局路由守衛(wèi)
如 beforeEach, afterEach
2) 路由獨(dú)享守衛(wèi)
如 beforeEnter
3) 組件獨(dú)享守衛(wèi)
如 beforeRouterEnter, beforeRouterUpdate, beforeRouterLeave
他們的應(yīng)用場(chǎng)景各不相同,你問(wèn)的太寬泛,所以都有可能。
寫個(gè)傳參方法,調(diào)用10次
https://a.com/user/account
a.com 對(duì)應(yīng)于服務(wù)器上的某個(gè)文件夾,user/account 是文件夾下底下的某個(gè)資源,由于使用了vue-route,這些資源在這個(gè)文件夾里是不存在,所以返回 404 ,所以服務(wù)器需要做url rewrite, 把所有請(qǐng)求都指向 index.html 這個(gè)文件是真實(shí)存在的.
官方給出了大部分服務(wù)器的配置方式:https://router.vuejs.org/zh-c...
或者使用默認(rèn)的hash方式,
https://a.com/#/user/account, 這里的#分割符號(hào)之后的內(nèi)容都是服務(wù)器的路徑,只是一些參數(shù)(甚至理解為注釋),(還有URL中第一次出現(xiàn)的?是GET參數(shù)分隔符,也不會(huì)去查找), 所以不需要服務(wù)器作任何處理,因?yàn)樗械恼?qǐng)求,都是指向index.html的.
應(yīng)該能解決第二個(gè)問(wèn)題,
第一個(gè)問(wèn)題不太理解,多說(shuō)一句加了 .html 就是另一個(gè)資源.
跨域了,請(qǐng)求的地址不允許來(lái)自'http://localhost:8080'的請(qǐng)求
你可以考慮react-saga。
火狐瀏覽器,#緩存機(jī)制的問(wèn)題,已經(jīng)自己解決勒
那要看看你的ctx為什么是個(gè)Promise。
北大青鳥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)師。