<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 首頁

    vue相關配置

    前端達人

    VeeValidator

    語言設置

    校驗消息默認是英文的,定義中文或其他語言的錯誤提示消息

    
    
    1. import VeeValidate from 'vee-validate';
    2. import Vue from 'vue'
    3. Vue.use(VeeValidate)
    4. var dict = {
    5. zh_CN: {
    6. messages: {
    7. required: function(field){
    8. return field + '不能為空!';
    9. },
    10. between: function(field){
    11. return field + '輸入不符合設定規則!';
    12. },
    13. min : function (field,leng) {
    14. return field + '長度不能小于'+leng+'位';
    15. }
    16. }
    17. }
    18. };
    19. VeeValidate.Validator.localize('zh_CN', dict.zh_CN);

    校驗的時候需要設置語言

    this.$validator.localize('zh_CN');

    錯誤消息顯示

    顯示指定字段的第一個錯誤

    this.$validator.first('fieldname')

    顯示所有字段的第一個錯誤消息

    this.$validator.errors.all()

    Mock.js

    配置

    路由攔截配置不需要修改之前的代碼,匹配的url請求會直接通過mock而不是請求服務器

    
    
    1. const handler = req => {
    2. return {mock數據};
    3. }
    4. Mock.mock('url攔截規則,正則表達式',handler)

    配置延遲時間

    模擬服務器請求的異步特性

    
    
    1. Mock.setup({
    2. timeout:1000
    3. })

    Vuex

    模塊化

    多人協作,或者中大型的項目需要把store分為模塊

    
    
    1. const a = {
    2. state : {foo:1},
    3. mutations : {hello(state)=> {}},
    4. modules : {
    5. ...嵌套
    6. }
    7. }
    8. const b = {}
    9. const store = {
    10. state : {},
    11. mutations : {},
    12. actions : {},
    13. modules : {
    14. module_name_a:a,
    15. module_name_b:b
    16. }
    17. }

    在調用的時候,state 有命名空間的,而mutation和actions都與父模塊共用同樣的命名空間所以不能定義與父模塊同名的mutation 或 action

    獲取模塊的state

     this.$store.state.module_name_a.foo

    調用模塊的mutation

    this.$store.commit('hello')

    namespace

    定義了namespace ,mutations 和 action 會帶上模塊的命名: module_name/muation

    
    
    1. const store = {
    2. modules : {
    3. namespace : true,
    4. a: {
    5. muations : {
    6. test(state) => {...}
    7. }
    8. }
    9. }
    10. }

    這時候調模塊內的mutation

    this.$store.commit('a/test')

    vuejs-datepicker

    日期選擇控件

    設置默認值

     <datepicker v-model="mydate" </datepicker> 

    日期格式化

    <datepicker :format="'yyyy-MM-dd'"> </datepicker> 

    語言選擇(默認是英文)

    導入語言資源文件,然后再設置:language

    設置成中文

    
    

    git學習記錄

    前端達人

    一、建立一個庫



    1、git clone [url]    // 克隆代碼



    2、設置貢獻者



          git config --global user.name ""   // 設置當前本地庫username



          git config --global user.email "
    "   // 設置當前本地庫useremail



          git config --global user.email   // 查看當前本地庫useremail



          git config --list   // 查看所以配置項

    二、git的三個區

    1、工作區:本地編寫代碼的地方叫工作區

    2、暫存區:工作區改好的代碼先提交到暫存區,然后由暫存區將代碼提交到版本庫

         - 作為過渡層

         - 避免誤操作

         - 保護工作區和版本區

         - 分支處理


    TypeScript

    前端達人

    TypeScript是什么

    Type+EcmaScript6

    TypeScript是JavaScript的強類型版本。然后在編譯期去掉類型和特有語法,生成純粹的JavaScript代碼。由于最終

    在瀏覽器中運行的仍然是JavaScript, 所以TypeScript并不依賴于瀏覽器的支持,也并不會帶來兼容性問題。

    TypeScript是JavaScript的超集,這意味著他支持所有的JavaScript語法。并在此之上對JavaScript添加了- -些擴

    展,如class / interface / module等。這樣會大大提升代碼的可閱讀性。

    和JavaScript若類型不同,TypeScript這種強類型語言最大的優勢在于靜態類型檢查,可以在代碼開發階段就預知一

    些低級錯誤的發生。

    ●-種類似于JavaScript的語言,在JavaScript的基礎之上增加了類型,同時增強了JavaScript部分語法功能

    ●遵循EcmaScript 6標準規范

    ●由微軟開發

    ●Angular2框架采用TypeScript編寫

    ●背后有微軟和谷歌兩大公司支持

    ●TypeScript可以編譯成Javascript從而在支持Javascript的環境中運行

    ●TypeScript和javascript的關心就好比less和css的關系



    javascript 是動態的

    可以在執行階段重新賦值不同的類型數據

    .ts 后綴表示一個TypeScript文件

    Typescript兼容es6

    TypeScript為javascript增加了類型的概念

    Typescript是強類型 一旦定義數據的類型 不能動態修改這 樣幫我們在開發階段避免很多低級錯誤

    echarts數據動態更新和dataZoom被重置的解決方案

    前端達人

    1.全局綁定滾輪事件,獲得dataZoom的位置:



    myChart.on('dataZoom',function(event){

        if(event.batch){

        start=event.batch[0].start;

        end=event.batch[0].end;

        }else{

        start=event.start;

        end=event.end;

        };

    });

    2.把的start和end賦值給要更新的option



    window.setInterval(function () {

        num=Math.random()*num+100;

    data0.splice(0,1);

    data0.push(num);

     

    option.dataZoom[0].start=start;

    option.dataZoom[0].end=end;

    myChart.setOption(option);    

    },3000);

    Vue 數據持久化

    前端達人

    方法一:使用 localStorage 存儲數據

    window.localStorage.setItem(key,value)

     

    方法二:使用 vuex-persistedstate插件

    vuex 存在一個痛點,就是刷新以后vuex里面存儲的state就會被瀏覽器釋放掉(state都是存儲在內存中的)。

    辦法:

    通過vuex-persistedstate插件,實現將數據存儲到本地。

    1.實現

    import createPersistedState from 'vuex-persistedstate'
    export default new Vuex.Store({
        state:{},
        getters:{},
        actions:{},
        mutations:{},
        modules:{},
        plugins: [createPersistedState()]  //加上這個就可以了 //里面設置需要緩存的內容
    })

    API:  https://www.npmjs.com/package/vuex-persistedstate

    方法三: 使用vue-cookie插件

    cookie 可以設置過期時間

    import Vue from 'vue';
    import Vuex from 'vuex';

    Vue.use(Vuex)
    var VueCookie = require('vue-cookie');

    export default new Vuex.Store({
      state: {
        token: VueCookie.get('token')
      },
      mutations: {
        saveToken(state, token) {
          state.token = token;
          // 設置存儲
          VueCookie.set('token', token, { expires: '30s' });
        }
      },
      actions: {

      }
    })

    vue使用路由進行頁面跳轉時傳遞參數

    前端達人

    一. 通過router-link進行跳轉

    <router-link

    :to="{

    path: 'yourPath',

        params: {

        name: 'name',

            dataObj: data

    },

    query: {

        name: 'name',

            dataObj: data

    }

    }">

    </router-link>

    二. 通過編程導航 $router進行路由跳轉

    1.路徑后拼接參數

    通過路徑后直接拼接來傳遞參數



    getDescribe(id) {

    // 直接調用$router.push 實現攜帶參數的跳轉

            this.$router.push({

              path: /describe/${id},

            })



    對應路由配置

    注意:此方法需要修改對應路由配置,需要在path中添加/:id來對應 $router.push 中path攜帶的參數。



     {

         path: '/describe/:id',

         name: 'Describe',

         component: Describe

       }



    獲取傳遞的參數值



    this.$route.params.id

    1. 通過params來傳遞參數

      傳遞參數

      通過路由屬性中的name來確定匹配的路由,通過params來傳遞參數。



       this.$router.push({

                name: 'Describe',

                params: {

                  id: id

                }

              })



      對應路由配置

      注意這里不能使用:/id來傳遞參數了,因為已經使用params來攜帶參數了。



      {

           path: '/describe',

           name: 'Describe',

           component: Describe

         }



      獲取參數



      this.$route.params.id

      1
    2. 通過query來傳遞參數

      傳遞參數

      使用path來匹配路由,然后通過query來傳遞參數

      這種情況下 query傳遞的參數會顯示在url后面?id=?



      this.$router.push({

                path: '/describe',

                query: {

                  id: id

                }

              })



      對應路由配置



       {

           path: '/describe',

           name: 'Describe',

           component: Describe

         }



      獲取參數



      this.$route.query.id




    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 老司机国内精品久久久久| 精品人妻伦一二三区久久| 97精品在线播放| 无码精品人妻一区二区三区中| 国产高清在线精品一区二区三区 | 狠狠精品干练久久久无码中文字幕| 久草视频在线这里精品| 四虎国产精品永久地址入口| 黄床大片免费30分钟国产精品| 99热亚洲色精品国产88| 亚洲精品无码专区在线播放 | 嫩草影院久久国产精品| 久久99精品久久久久子伦| 伊人久久无码精品中文字幕| 精品伦精品一区二区三区视频| 91精品啪在线观看国产电影| 99精品免费视频| 国语自产少妇精品视频蜜桃| 亚洲精品国偷自产在线| 欧美在线精品永久免费播放| 国产精品视频九九九| 欧美一区二区精品系列在线观看 | 亚洲人成国产精品无码| 精品一区二区三区高清免费观看| 亚洲人成亚洲精品| 欧美国产日韩精品| 欧美精品一本久久男人的天堂| 国产精品久久国产精品99盘| 69国产成人综合久久精品| 国产欧美日韩精品a在线观看| 精品视频一区二区三三区四区| 欧美精品v国产精品v日韩精品| 无码人妻精品一区二区三区99仓本 | 亚洲欧美日韩另类精品一区二区三区| 欧美日韩精品系列一区二区三区 | 成人区人妻精品一区二区不卡视频| 嫩草伊人久久精品少妇AV| 熟妇无码乱子成人精品| 亚洲午夜精品久久久久久浪潮| 97r久久精品国产99国产精| 99久久99久久精品免费看蜜桃|