1. 程式人生 > >TW實習日記:第四天

TW實習日記:第四天

vuex body 狀態 定位在 document 裏的 prototype 顯示 頂部導航欄

第四天

  早上第一件事就是和組長說前一天的需求的事,簡而言之就是兩個導航欄不屬於一個標簽內,自定義導航欄屬於<body>下的<header>,微信頂部的則是<head>標簽下的<title>,還好組長也很快明白了我的意思,沒有再為難我。所以,在微信端的頁面就去掉頂部導航欄來設計。然後早上我就幫忙前端同事做修改頁面和動態修改title這個活。

  實現:

  1.首先添加一個全局標誌位,標誌從微信端或移動應用端登入。因為我不會且似乎項目並沒有很多全局變量,所以並沒有使用Vuex,所以添加全局變量的方法是在main.js裏用如下方法

Vue.prototype.變量名= function(){
  return 變量值;
}

  2.設置自定義的頂部導航欄的顯示可見,可以用v-if也可以用v-show,這裏我采用了v-if的方式。我個人理解後的原因如下

    v-show屬於偏動態的操作,因為在頁面編譯時,添加v-show屬性的元素一定會被編譯,並且顯示在頁面源代碼上,v-show只是在元素上添加了display屬性,根據v-show的值設置可不可見,所以這種方式相當於是操作css來控制可不可見,切換消耗較小,比較適合會頻繁切換狀態的元素。

    v-if則是在編譯層面上的。也就是說,如果v-if的值為false,那麽在編譯時他就根本不會產生元素的代碼,只有v-if的值為true,它才會進行編譯,將元素動態的加入到頁面中。而且v-if的機制是懶加載,如果初始值為false,那麽它就不會編譯,直到值為true才進行編譯並緩存編譯。

  對比過這兩者的差別後,對於我的需求:判斷用戶登錄是移動端還是微信端,那麽很顯而易見了,采用v-if會好很多,畢竟其實這個需求都沒有切換要求,只是單純為了不多寫一套代碼打包而采取的措施。

  3.自定義導航欄有一些頁面是帶有按鈕的,按鈕是新增表單這種作用。那麽如果自定義導航欄沒有了的話,需要添加按鈕。所以這裏就在這些有導航欄按鈕的頁面中,添加兩個定位在瀏覽器最底端的按鈕,用於返回和新增。這個需求也很簡單,因為我們項目組用的是ydui,直接在兩個按鈕的外層標簽<yd-tabbar>中添加fixed=“true”就可以了。css的方式的話就添加樣式position:absolute和bottom:0即可。

  4.最後也就是根據Vue的跳轉來實現動態改變頁面title。這一點也不難,在Vue工程的router文件夾下有一個index.js文件。首先在各個路由對象裏,加上meta:{ title : ‘value‘ },然後在根目錄下的main.js裏,添加一個方法用於頁面跳轉時,設置跳轉頁面後的title為router對象裏的title值。代碼如下:

//index.js裏router內的一個示例    
    {
      path:‘/modules/task‘,
      name:‘task‘,
      component: Task ,
      meta:{
        title:‘我的任務‘
      }
    }

//main.js裏的方法示例
router.beforeEach((to,from,next)=>{
  if(to.meta.title){
    document.title = to.meta.title;
  }
  next()
})

  在這四步之後需求就已經完成了,這應該是我實習後第一次修改項目中的代碼,雖然任務十分輕松,但還是有點小開心。接下來下午就是繼續深入學習企業微信開發,寫demo調用微信的接口來測試,實現了二維碼的掃碼登錄和微信端頁面的授權登陸,還有一些開啟回調模式等這些基礎功能。於是這一天就這樣過去了,關於微信開發的東西的話放到第五天裏再講好了。

TW實習日記:第四天