(┬_┬),在胡亂摸索中把這問題給解決了,其實只是自己對lambda的理解不足及使用錯誤有關(guān)。問題中的函數(shù)參數(shù)的前兩個h、c分別是iview的Table組件自定義模版render時的參數(shù),我自定義了一個函數(shù),包含這兩個參數(shù),同時自己傳多一個數(shù)組。我在內(nèi)部準(zhǔn)備使用這些參數(shù),本來這些參數(shù)的作用域已經(jīng)是整個函數(shù)commonGenSelect了,但是我在后續(xù)的代碼中使用了匿名函數(shù),同時異想天開的將這三個參數(shù)作為匿名函數(shù)的參數(shù)傳入,不過此時的匿名參數(shù)已經(jīng)相當(dāng)于定義了一個新的函數(shù)出來,且沒有傳入實參,導(dǎo)致在內(nèi)部代碼報錯undefinded。解決的方法有兩種:
一種是直接將匿名函數(shù)的參數(shù)直接去掉,在匿名函數(shù)代碼塊中使用的變量將是存在于commonGenSelect整個函數(shù)作用域內(nèi)的,此時這些變量就不會為空
()=>{
let OptionArr = new Array();
dataList.forEach(colKV => {
OptionArr.push(h("Option",{
props:{
label:colKV.title,
value:colKV.val
}
}))
});
return OptionArr;
}
第二種方法是,匿名函數(shù)被定義成三個參數(shù)但是沒有被傳入實參,此時我們可以加多一個調(diào)用的步驟,在匿名函數(shù)后進行傳參及調(diào)用
((h,c,dataList)=>{
let OptionArr = new Array();
dataList.forEach(colKV => {
OptionArr.push(h("Option",{
props:{
label:colKV.title,
value:colKV.val
}
}))
});
return OptionArr;
})(h,c,dataList)
最后,這個問題也是讓我想到
匿名參數(shù)在定義的時候,要么掛鉤到對應(yīng)的已有函數(shù)中,如
render:(h,c)=>{}
此時其參數(shù)是被固定默認(rèn)傳入的
要么在定義出自己的匿名參數(shù)后,記得后續(xù)進行傳參來調(diào)用,否則匿名函數(shù)的參數(shù)將是空的
((a,b)=>{console.log(a+b);})(1,3)兄弟,你沒有理解transition的作用吧
<transition> 元素作為單個元素/組件的過渡效果。<transition> 只會把過渡效果應(yīng)用到其包裹的內(nèi)容上,而不會額外渲染 DOM 元素,也不會出現(xiàn)在檢測過的組件層級中。
transition其實只是在元素/組件的過渡的時候才會有效果,需要配合v-show 或者 v-if使用。
<transition-group name="drop" v-on:before-enter="enterFisrt" v-on:enter="enter" v-on:after-enter="EnterLast" >
<div class="ball" v-for="(ball,index) in balls" :key="index" v-show="ball.show">
<span class="inner inner_hook"></span>
</div>
</transition-group>
兄弟,你忘記使用v-show了
哪里沒有執(zhí)行
事實就是不能實現(xiàn)的,如果是下面這兩種情況,都是綁定在構(gòu)造函數(shù)中的,阮一峰那種方法很明顯不能用。
class A {
age = 20;
getAge = () => {
return this.age;
}
}
這種寫法其實等價于:
function A() {
this.age = 20;
this.getAge = function() {
return this.age;
}
}
這種情況下是無法拿到age和getAge的,我最近也在想這個多重繼承的問題,我能想到的是手動實現(xiàn)extends,實現(xiàn)Child -> Parent1 -> Parent2 -> Parent3這樣的原型鏈,我參考了babel后的extends的實現(xiàn)。
class Child {
name = "111"
constructor() {
Child.__proto__.apply(this, arguments);
}
}
class Parent1 {
name = "222"
constructor() {
Parent1.__proto__.apply(this, arguments);
}
}
class Parent2 {
name = "333"
constructor() {
Parent2.__proto__.apply(this, arguments);
}
}
Child.__proto__ = Parent1;
Parent1.__proto__ = Parent2;
Child.prototype.__proto__ = Parent1.prototype;
Parent1.prototype__proto__ = Parent2.prototype;
這里可以實現(xiàn)一個Mixin的方法,通過reduce實現(xiàn)上面繁瑣的步驟。
但是有兩個問題,一個是要在類的constructor里面使用apply,另一個是父類的屬性會覆蓋子類的屬性,比如上面的name屬性,除非把name手動的在constructor里面寫到apply后面,這個其實就是《js高級程序設(shè)計》里面組合繼承的借用構(gòu)造函數(shù)。
如果全部使用ES5的寫法,這個多重繼承是沒啥問題的,但是用ES6這樣寫的話會很不優(yōu)雅,也不完美,我目前還沒想到好的解決方案。
函數(shù)聲明時設(shè)置的默認(rèn)參數(shù)值是在函數(shù)調(diào)用時計算賦值的,而不是在函數(shù)聲明時賦值
我們可以看下下面的例子
function foo2(a, b = (function() { console.log(c); return function(){} })()) {
b();
}
foo2();
調(diào)用 foo2();
控制臺將輸出:
Uncaught ReferenceError: c is not defined
at b (<anonymous>:1:47)
at foo2 (<anonymous>:2:5)
at <anonymous>:1:1
而不掉用 foo2();
控制臺將不報錯
以上例子說明了函數(shù)參數(shù)的默認(rèn)值是在調(diào)用是賦值的,而不是在聲明時。
對于問題的代碼,還有注意一點,y默認(rèn)值函數(shù)聲明中的x是綁定為函數(shù)聲明中的參數(shù)x變量而不是foo外層作用域中的變量x
function foo(x, y = function() { x = 2; }) {
console.log("x1:"+x);
y();
console.log("x2:"+x);
}
foo();
輸出
x1:undefined
x2:2
那么下面的代碼輸出2就好理解了
var x = 1;
function foo(x, y = function() { x = 2; }) {
x = 3;
y();
console.log(x);
}
foo(); // 2已解決.
webpack.prod.config.jspublicPath:'http://.....'
寫服務(wù)器地址就好了
replace第一個參數(shù)傳一個全局模式的正則就可以了
function searchs(str, match, replace) {
const reg = new RegExp(match, 'g')
return str.replace(reg, replace)
}
const str = 'Lorem ipsum dolor sit a met a';
const result = searchs(str, 'a', '<i>a</i>')
console.log(result)
// Lorem ipsum dolor sit <i>a</i> met <i>a</i>你在第一次進入首頁的時候,顯示loading之后,在localStorage里邊記錄一個顯示過的狀態(tài),然后從其它頁面進入首頁的時候首先取localStorage里的狀態(tài)看看顯示過了沒有啊,顯示過了就不展示loading了。
另外,react是有一次性事件的,只不過不是說在應(yīng)用程序中只執(zhí)行一次,而是說在組件生命周期中,只執(zhí)行一次哈。比如生命周期事件getDefaultProps, getInitialState ,componentWillMount,componentDidMount,componentWillUnmount。
參考:React組件生命周期
webstorm 2017.3.1 es6
樓主是需要自己搭建服務(wù)器嗎,自己部署私有云?工作量怎么來說呢?沒有辦法給一個具體的定位,還是要看你的具體的需求。網(wǎng)上相關(guān)的開源代碼也是挺多的,比如webrtc開源了所有的代碼,比如tucodec免費提供了SDK。你在這些SDK的基礎(chǔ)上,完成自己服務(wù)器搭建和UI設(shè)計就可以了~
push和pop就可以實現(xiàn),怎么弄這么復(fù)雜
"yyyy-MM-dd HH:MM:SS"獲取HH:MM為什么要用正則啊,字符串截取不好么?
參數(shù)類型沒有對,你定義的參數(shù)類型是study.String,而你調(diào)用setName()傳入的是java.lang.String類型的。把方法定義的參數(shù)類型改為java.lang.String就可以了。
name: {
textStyle: {
color:'red'
}
},var s = new Array(1000);
var aWord = []
var k = 1;
for(let x=0;x<1000;x++){
aWord.push(x)
}
function abc() {
var d = 1001;
for(let i = 0; i < k; i++) {
s[d - k + i] = [d - k + i, aWord[i]];
}
k++;
console.log(s)
}
for(let y=0;y<1000;y++){
abc()
}
將樓上的完善了下,謝謝了
Vue項目使用swiper做輪播圖時,異步調(diào)用數(shù)據(jù)時導(dǎo)致圖片不能滑動的解決方法
因為swiper提前初始化了,那個時候還沒有數(shù)據(jù),當(dāng)數(shù)據(jù)調(diào)出來時已經(jīng)沒用了,所以有以下幾個解決方法:
1、在數(shù)據(jù)調(diào)用結(jié)束后再進行swiper初始化
api.ajax({...}, function(...) {
... // 賦值代碼
that.$nextTick(function () {
that.swiperInit()
})
})
這里還要用到$nextTick,它會在數(shù)據(jù)變化以后,DOM更新以后進行回調(diào)函數(shù)
2、如果不是輪播的情況下呢,直接在初始化時加上observer
(修改swiper自己或子元素時,自動初始化swiper)、 observeParents
(修改swiper的父元素時,自動初始化swiper)這兩個參數(shù)就行了,會在數(shù)據(jù)變化時,再幫你初始化一次
你是使用的中國鏡像把。中國鏡像需要一段時間同步。你可以切換回原網(wǎng)鏡像
{test(){}}
等同于
{
test: function(){
}
}
files是數(shù)組,要循環(huán)append
for(var i = 0;i < this.file.length;i++){
formData.append('file[]', this.file[i]);
}北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。