vue餓了么踩坑指南

  • build/webpack.base.config中可以設置alias設置相應的別名,可以在導入時簡化路徑。

  • vue-router2.0 重定向routes [{path:'/',redirect:{'/', 'goods'}}];不再是1.0中的.go()

  • expected "indent", got "eos" 在寫stylus時碰到這種問題,肯定是由于編輯器使用了不一樣的縮進方式,需要進行設置即可。因為他在你的編輯器中可能是對齊了的,但是實際并沒有。

  • 寫css時布局和不可重繪的屬性寫在前面

  • css提供的方法

  • stylus mixin只可以為樣式提供函數的功能

border-1px($color)
    position: relative
    &:after
        display: block
        position: absolute
        left: 0
        bottom: 0
        width: 100%
        border-top: 1px solid $color
        content: ' '
@media(-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio:1.5)
    .border-1px
        &::after
            -webkit-transform: scaleY(0.7)
            transform: scaleY(0.7)
@media(-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2)
    .border-1px
        &::after
            -webkit-transform: scaleY(0.5)
            transform: scaleY(0.5)        
例如實現1像素的邊框
  • webpack 的相關配置在/build/webpack.base.conf.js 中進行相關的配置,例如路徑的別名等

  • vue-resource 引入一個第三訪異步

  • 在使用一些異步過來的數據時,在vue中的數據要用v-bind數據,這樣在一開始不相應數據還不存在時不會報錯

  • 取消塊間的間隔可以用父類的font-size: 0或將兩個元素之間的換行去掉

  • 使用filter: blur()后陰影透出可以在父類使用overflow: hidden將透出陰影去掉

  • 星級實現核心邏輯

itemClasses () {
            let result = [];
            let score = Math.floor(this.score * 2) / 2;
            let hasDecimal = score % 1 !== 0;
            let integer = Math.floor(score);
            for (let i = 0; i < integer; i++) {
                result.push(CLS_ON);
            }
            if (hasDecimal) {
                result.push(CLS_HALF);
            }
            while (result.length < LENGTH) {
                result.push(CLS_OFF);
            }
            return result;
        }
  • transition標簽用來包裹需要時行動畫的內容

  • 能過將display:table可以很好的實現垂直居中

  • 1.0中的v-el已經和ref合并了,

  • v-for 中的隱式變量$index,$key已經取消,可以自己定義

  • click事件中的$event參數中,當$event._constructed存在時,則為自己派發的屬性

  • 操作相關原生dom的時候要在vue.$nextTick()中進行

  • props 屬性

  • data數據

  • computed 計算屬性

  • create 組建創建時的相應操作

  • 用了better-scroll組件的區域,在寫事件時需在初化better-scroll中加入白名單,不然事件無法生效

  • 在vue中,要給一個新的對象設置屬性的時候,要引入Vue然后用它的set(k, v, default)方法來設置,這樣該屬性才會被動態的檢測

  • 用transform:translate3D屬性可以用于開啟硬件加速

  • vue2.0中的事件用vue.$emit, vue.$on, $vue.off來派發,響應和解除(增加按鈕案例)

  • 在小球動畫中,分別使用了x軸和y軸兩條線路來進行動畫路由,在y軸使用貝賽爾曲線,使用vue中的transition-group,綁定相應的js鉤子函數,在v-on:enter函數中一定要使用don回調函數,這樣動畫才能正常進行

  • vue.nextTick 在下次 DOM 更新循環結束之后執行延遲回調。在修改數據之后立即使用這個方法,獲取更新后的 DOM

  • 屬性和方法不可重名,否則會造成引用錯誤

  • 父組件可以調用子組件的方法,而子組件不可以調用父組件的方法

  • pading-top設置為100%時,會根據寬度來計算padding,所以width:100%; height: 0;padding-top: 100%會是一個正方形的盒子

  • @click.stop可以阻止事件冒泡和捕獲

  • vue2.0中props中的數據只可以父組件來改變,當子組件試圖對該屬性進行改變之后vue的編譯器會發出警告信息,我們一般不建議子組件對props中的數據進行改變,當必需時,可以用vue.$emit()方法將這個改變的事件派發出去,在你組件中進行接收并進行相應的改變

  • 數組的filter函數可以對數據進行相應的過濾篩選

  • v-show是可以綁定一個函數的

*給數字加上空字符串是為了將其轉換為字符串

  • better-scroll依賴于文檔,所以最好在ready中對其進行初始化

  • 在初始時要對文檔中的內容進行引用,最好放在vue.$nextTick()中進行,這樣可以保證該引用已經存在于文檔流中

  • 在better-scroll中如果出現有底部內容無法自然顯現,需要在該element中找到隨后加載的內容并給定其高度

  • Object.assign({},{},{})可以用來擴展對象,類似_extend();

  • keep-alive屬性的使用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 1.安裝 可以簡單地在頁面引入Vue.js作為獨立版本,Vue即被注冊為全局變量,可以在頁面使用了。 如果希望搭建...
    Awey閱讀 11,071評論 4 129
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內容,還有我對于 Vue 1.0 印象不深的內容。關于...
    云之外閱讀 5,071評論 0 29
  • 越是成長,越是發現,人與人之間溝通起來很難,怪不得高端人士都愿意獨處,而不愿意永遠扎人堆里,其實扎在人堆里,你會發...
    你好3306閱讀 212評論 0 0
  • 富商宅邸失竊的消息,不出兩天,已經傳得滿城皆知,且細節各異。 這城中倘若有人不知此事,豫靈算得一個,另外一個,當是...
    紅雪閱讀 225評論 0 0