launcher是乙個安卓端的活動頁面。它在pc端的形式則是由資源,桌面和發布三大板塊組成。其中資源部分則是由素材,apk資源,網頁資源和資源四個頁面組成。
在完成素材部分頁面的過程中,主要梳理和總結了的技術點如下:
1⃣️ 往陣列中的前序新增、往陣列中最後一項追加元素、刪除陣列中的一項、往陣列中指定的某一項前新增元素
a. 前序新增就是往陣列的第一項之前新增乙個元素, 方法是unshift
eg. let arr = [a, b, c, d, e]
let f = 1
arr = arr.unshift(f)
console.log(arr)
結果為: [1,a,b,c,d,e]
b. 後續追加就是在陣列的最後一項之後新增一項, 方法是push
eg. let arr = [a,b,c,d,e]
let f = 1
arr = arr.push(f)
console.log(arr)
結果為:[a,b,c,d,e,1]
c. 刪除陣列中的一項, 方法是splice(index, n)(聯想:splice與slince的區別)
eg. splice(2, 1)
就是從下角標為2的那一項開始, 刪除1項。 其中index代表下角標, n代表從這一項開始, 一共要刪除幾項。
splice與slince的區別?
slince:返回乙個新的陣列,包含從 start 到 end (不包括該元素)的 arrayobject 中的元素。
eg. arr = [1,2,3]
console.log(arr.slince(1))
結果為: [2,3]
如果slince後面有兩個引數, 則表示, 返回值是第乙個引數到第二個引數(包括第二個引數)這一段區間的部分。
d. 往陣列中指定的某一項前面新增一項
這裡也是用到的是splice
這裡splice後面有三個引數,即 splice(index, 0, obj),也就是把在陣列中下角標為index的元素的前面新增乙個元素。
如果這裡將第二個引數改為1,即splice(index, 1, obj),則是刪除了下角標為index的元素, 並且新新增乙個元素代替被刪除的元素。
2⃣️ 如何寫出可以自適應最大高度的滾動條
之前用到滾動條的時候, 第一反應就是給需要滾動的元素外層加上max-height, 然後給父元素設定overflow:scroll.
可是後來發現, 這樣做在元素需要滾動時候會出現滾動條, 但是元素本身高度沒有達到max-height的時候也會出現滾動條。
後來發現, 這裡可以通過設定overflow: auto來代替overflow: scroll。 這樣就可以使滾動條在沒有達到max-height的時候消失,超過max-height時候出現。
3⃣️ 深度轉殖/淺轉殖(專案中沒有用到,但可以進行優化時使用)
淺轉殖就是將乙個元素的值賦給另乙個元素, 但是他們引用這個值的路徑又是同乙個, 因此儅乙個值改變時, 另乙個值也會隨之改變。
深度轉殖則是所有元素或屬性均完全複製,與原物件完全脫離,也就是說所有對於新物件的修改都不會反映到原物件中。
這裡引用了兩篇請前輩的文章: ① **: ② 載自:
4⃣️ 上傳 dataform
這是在launcher專案中, 資源部份, 圖片資源和素材資源部分上傳圖片時候用到的功能。
最初沒有使用dataform,而是直接上傳。這樣的結果就是, 本來使用的是post請求, 但是後台卻會報錯, 說接收到的是get請求。
postimg (url, data, config)}).then(
(response) =>
).then(
(res) =>
)},
然後在傳遞引數時候應該先建立dataform物件,再對應選用相應的格式如下:
let param = new formdata()//建立form物件
imgname
', _this.changeform.name) //
imghigh
', _this.naturalheight) //
imgwide
', _this.naturalwidth) //
showid
', _this.showid) //
file
', _this.files) //
edittype
', _this.edittype) //
alterremark
', _this.changeform.state) //
chunk
', '
0') //
新增form表單中其他資料
這樣才能成功的進行引數的傳遞。
5⃣️ 的選擇獲取和回顯
圖片回顯, 就是在上傳完一張圖片之後, 如果上傳成功, 就將這張圖片顯示出來, 供圖片的上傳者檢視。
這裡用到的是filereader()。
html:
<div
class
>
<
div
class
="add-pic"
v-show
="picflag"
v-if
="images === '' || images === 'noimgnew'"
>
+
<
input
@change
="addpic"
name
="file"
type
="file"
accept
="image/jpeg,image/x-png,image/gif"
class
="newimgipu"
>
div>
<
div
class
="add-pic"
v-show
="picflag"
v-if
="images !== '' && images !== 'noimgnew'"
>
+
div>
div>
js:
addpic: function(event)
image.src =evt.target.result
}filereaders.readasdataurl(_this.files)
}}
其中, 如果直接獲取image的寬高,那麼獲取的很可能是這個盛放image的容器的寬高, 而非實際寬高。
所以在此處運用了image()方法,這樣才可以獲得真實的寬高。
程式碼如下:
let image = newimage()
image.onload = function
()
專案踩坑及成長
4月1號那天,我領導給我安排了乙個任務,讓我負責乙個小系統,帶北京的兩個同事,還有上海這邊的乙個前端。講實話,我又興奮又覺得有壓力。在這三個星期當中,我覺得我從這個專案裡成長的不僅僅是技術 還有對整個專案的把控 專案的進度計畫 部署都得到完整的體驗性成長,當然有成長,就會有很多麻煩的事情,不過我覺得...
ABP Zero專案入門踩坑
3.安裝最新版本的vs2017,必須v15.3.5以上,如果電腦系統是window7,還需要安裝更新 shell 4.0 vs2017的nuget控制台必須要power shell 3.0以上。然後生成專案 5.生成資料庫 2 開啟工具 nuget包管理器 程式包管理器控制台,修改預設專案為myab...
日常踩坑總結1
業務邏輯層要用業務相關的名稱命名,比如用bbsuserservice這樣的命名就不符合規範,命名要用loginservice,registerservice這些。還有盡量不要用逗號分隔符,用中間表來代替。以及修改語句時,如果不確定修改的是哪個字段,可以先查詢出來,進行比較之後進行更新。delete,...