實現去哪兒網webapp項目記錄

1.多頁應用:

頁面跳轉的時候服務器都會返回HTML文件,只經歷一個http請求

優(yōu)點:首屏時間快,SEO效果好

缺點:頁面切換慢


2.單頁應用:

頁面跳轉通過js渲染,不會刷新(不經過http請求)

優(yōu)點:頁面切換快

缺點:首屏時間慢,seo差


3.reset.css解決不同手機樣式顯示不一樣問題


4.border.css解決移動端像素問題


5.npm install fastclick -s 解決移動端click事件300ms延遲:

在main.js中import fastclick from 'fastclick'

fastclick.attach(document.body)


6.iconfont圖標庫,把需要的圖標添加到購物車,之后添加到iconfont里的項目中,通過壓縮包下載到本地項目。壓縮包里包含很多文件,只需要后綴名為eog,svg,ttf,woff,css這幾個文件

通過復制圖標代碼的方式將圖標放到頁面上,注意類名改成iconfont,在iconfont.css修改路徑

如果添加了新的圖標,需要重新替換這五個文件?


7.修改了webpack配置項一定要重啟服務器 不然vue會報錯


8.build的webpack.base.config.js文件的alias可以為指定目錄自己定義名字,如@代表src


9.在碼云創(chuàng)建新分支

本地命令行:git pull 拉取新分支到本地

git checkout 新分支名 切換到新分支

git status? 能查看分支狀態(tài)

注意:開發(fā)的時候不要在主分支開發(fā)?。。?!

git pull <遠程庫名> <遠程分支名>:<本地分支名> 表示從遠程庫中獲取某個分支的更新,再與本地指定的分支進行自動merge。


在自己的分支寫好后合并到主分支:

先git add .

git commit -m '解釋內容'

git push? 這一步是把自己本地的分支提交到線上自己的分支但沒合并到主分支

git checkout master? 切換到主分支

git fetch --all 先拉取到本地

git merge origin/自己分支名? get merge表示合并指定分支(自己的)到當前分支(master)

git push 將主分支推到線上


10.使用輪播圖也有第三方庫:vue-awesome-swiper 去github里找


11.scoped表示樣式模塊化,在里面定義的樣式只對當前組件有效。如果當前組件運用到了全局的樣式,需要用>>>來表示樣式穿透???


12.設置元素的寬高比:將元素高度設為0,通過padding-bottom的百分比(針對父元素的寬度)設置高度,比如每個元素的 width 是 25%,現在想讓元素的高度始終保持為其寬度的兩倍,則 padding-bottom 的值應該設置為 50%。


13.pages=[[],[],[]],利用二維數組,根據數據自動地構建輪播圖頁碼,可以實現多頁切換輪播圖的效果


14.

text-overflow:ellipse

overflow:hidden

white-space:nowrap

這三行樣式實現溢出文本顯示省略號效果,如果出現不了省略號可以考慮加個min-width:0


15.在.gitignore定義的文件不會被提交到本地和線上的倉庫


16.使用proxy封裝請求api,請求到本地static目錄下的mock文件夾:在config的index.js中,找到proxyTable這個配置項

(請求后端服務器接口也在這里改)

proxyTable: {


'/api':{


? target:'http://localhost:8080',


? pathRewrite:{


? '^/api':'/static/mock'


? ? }


? }


? }


17.第三方庫better-scroll:github有

用法:

npm i better-scroll -s

import Bscroll from 'better-scroll'

調用mounted聲明周期函數,頁面加載完成之后可以使頁面手動滑動

mounted(){

? ? ? this.scroll = new Bscroll(this.$refs.wrapper) //要取到最外層(包裹層)的dom元素

? ? }


18.函數節(jié)流:

由于滾動事件非常頻繁,稍微滾動一下就會觸發(fā)許多次,如果頻繁觸發(fā)的滾動,每一次都去檢查是否到頁面底部了再次造成了浪費。

于是設置一個開關,一次只能有一個觸發(fā)執(zhí)行,并對執(zhí)行設置計時一段時間再執(zhí)行,執(zhí)行完畢之后再解鎖。這就是函數節(jié)流。(設置timer,clearTimeout(timer),setTimeout(()=>{要計算的東西},間隔時間)


19.對于不同組件之間的通信,如果是兄弟組件,有共同的父組件,可以通過傳給父組件再傳給子組件的方式通信。但如果是沒有共同父組件的組件之間的通信,就需要用到vuex??偩€模式也可以但比較麻煩


20.vue全局事件的解綁:在某個組件使用了window.addEventListener,所有組件都會監(jiān)聽到,這就需要在這個組件解綁全局事件:window.removeEventListener(在生命周期鉤子中,如deactivated)


21.組件name的用法:

1.遞歸組件時自己組件的名字用的就是name

2.頁面取消緩存如keep-alive include/exclude=“name”

3.vue devtools中的組件名字也是name


22.動畫過渡失效?在detail-animation分支


23.更改webpack,使本地ip地址能訪問網站:在package.json中dev增加一句:--host 0.0.0.0

手機和電腦在同一個局域網手機就可以訪問(真機調試)


24.解決手機兼容性問題:

安裝第三方包:npm i babel-polyfill -s

在main.js引入 import 'babel-polyfill'


25.項目打包上線:

npm run build

生成的dist文件夾就是要上線的內容,給后端放到服務器上(后端的根目錄)

如果要修改后端運行的目錄,要找到config文件夾下的index.js文件,找到build,修改assetsPublicPath即可(默認是后端根路徑)

修改過的文件記得重新打包

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,164評論 1 180
  • 今晚的月亮挺美,我說是的。 很多時候,咬牙堅持一段時間就可以了,堅持很重要,每天堅持刷牙,七分飽的食量是最舒服的,...
    壞洋人閱讀 160評論 0 0
  • 本文參加#未完待續(xù),就要表白#活動,本人承諾,文章內容為原創(chuàng),且未在其他平臺發(fā)表過。 近年來,雖然城市公共交通系統(tǒng)...
    青春猛飛揚閱讀 203評論 0 1
  • 冬日綠草末全枯,萬里白云近卻無。 二人齊坐方寸草,曰光只照雙影孤。
    大同行者閱讀 180評論 0 0
  • 我外公是一個快80歲的老頭了,可是精神抖擻,做起田地活來可有年輕人的干勁兒。 外公家離我家近,可...
    B超機想吃狗肉閱讀 363評論 2 1

友情鏈接更多精彩內容