<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 首頁

          vue相關(guān)配置

          前端達(dá)人

          VeeValidator

          語言設(shè)置

          校驗(yàn)消息默認(rèn)是英文的,定義中文或其他語言的錯(cuò)誤提示消息

          
          
          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 + '輸入不符合設(shè)定規(guī)則!';
          12. },
          13. min : function (field,leng) {
          14. return field + '長(zhǎng)度不能小于'+leng+'位';
          15. }
          16. }
          17. }
          18. };
          19. VeeValidate.Validator.localize('zh_CN', dict.zh_CN);

          校驗(yàn)的時(shí)候需要設(shè)置語言

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

          錯(cuò)誤消息顯示

          顯示指定字段的第一個(gè)錯(cuò)誤

          this.$validator.first('fieldname')

          顯示所有字段的第一個(gè)錯(cuò)誤消息

          this.$validator.errors.all()

          Mock.js

          配置

          路由攔截配置不需要修改之前的代碼,匹配的url請(qǐng)求會(huì)直接通過mock而不是請(qǐng)求服務(wù)器

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

          配置延遲時(shí)間

          模擬服務(wù)器請(qǐng)求的異步特性

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

          Vuex

          模塊化

          多人協(xié)作,或者中大型的項(xiàng)目需要把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. }

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

          獲取模塊的state

           this.$store.state.module_name_a.foo

          調(diào)用模塊的mutation

          this.$store.commit('hello')

          namespace

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

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

          這時(shí)候調(diào)模塊內(nèi)的mutation

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

          vuejs-datepicker

          日期選擇控件

          設(shè)置默認(rèn)值

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

          日期格式化

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

          語言選擇(默認(rèn)是英文)

          導(dǎo)入語言資源文件,然后再設(shè)置:language

          設(shè)置成中文

          
          

          git學(xué)習(xí)記錄

          前端達(dá)人

          一、建立一個(gè)庫



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



          2、設(shè)置貢獻(xiàn)者



                git config --global user.name ""   // 設(shè)置當(dāng)前本地庫username



                git config --global user.email "
          "   // 設(shè)置當(dāng)前本地庫useremail



                git config --global user.email   // 查看當(dāng)前本地庫useremail



                git config --list   // 查看所以配置項(xiàng)

          二、git的三個(gè)區(qū)

          1、工作區(qū):本地編寫代碼的地方叫工作區(qū)

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

               - 作為過渡層

               - 避免誤操作

               - 保護(hù)工作區(qū)和版本區(qū)

               - 分支處理


          TypeScript

          前端達(dá)人

          TypeScript是什么

          Type+EcmaScript6

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

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

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

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

          和JavaScript若類型不同,TypeScript這種強(qiáng)類型語言最大的優(yōu)勢(shì)在于靜態(tài)類型檢查,可以在代碼開發(fā)階段就預(yù)知一

          些低級(jí)錯(cuò)誤的發(fā)生。

          ●-種類似于JavaScript的語言,在JavaScript的基礎(chǔ)之上增加了類型,同時(shí)增強(qiáng)了JavaScript部分語法功能

          ●遵循EcmaScript 6標(biāo)準(zhǔn)規(guī)范

          ●由微軟開發(fā)

          ●Angular2框架采用TypeScript編寫

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

          ●TypeScript可以編譯成Javascript從而在支持Javascript的環(huán)境中運(yùn)行

          ●TypeScript和javascript的關(guān)心就好比less和css的關(guān)系



          javascript 是動(dòng)態(tài)的

          可以在執(zhí)行階段重新賦值不同的類型數(shù)據(jù)

          .ts 后綴表示一個(gè)TypeScript文件

          Typescript兼容es6

          TypeScript為javascript增加了類型的概念

          Typescript是強(qiáng)類型 一旦定義數(shù)據(jù)的類型 不能動(dòng)態(tài)修改這 樣幫我們?cè)陂_發(fā)階段避免很多低級(jí)錯(cuò)誤

          echarts數(shù)據(jù)動(dòng)態(tài)更新和dataZoom被重置的解決方案

          前端達(dá)人

          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 數(shù)據(jù)持久化

          前端達(dá)人

          方法一:使用 localStorage 存儲(chǔ)數(shù)據(jù)

          window.localStorage.setItem(key,value)

           

          方法二:使用 vuex-persistedstate插件

          vuex 存在一個(gè)痛點(diǎn),就是刷新以后vuex里面存儲(chǔ)的state就會(huì)被瀏覽器釋放掉(state都是存儲(chǔ)在內(nèi)存中的)。

          辦法:

          通過vuex-persistedstate插件,實(shí)現(xiàn)將數(shù)據(jù)存儲(chǔ)到本地。

          1.實(shí)現(xiàn)

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

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

          方法三: 使用vue-cookie插件

          cookie 可以設(shè)置過期時(shí)間

          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;
                // 設(shè)置存儲(chǔ)
                VueCookie.set('token', token, { expires: '30s' });
              }
            },
            actions: {

            }
          })

          vue使用路由進(jìn)行頁面跳轉(zhuǎn)時(shí)傳遞參數(shù)

          前端達(dá)人

          一. 通過router-link進(jìn)行跳轉(zhuǎn)

          <router-link

          :to="{

          path: 'yourPath',

              params: {

              name: 'name',

                  dataObj: data

          },

          query: {

              name: 'name',

                  dataObj: data

          }

          }">

          </router-link>

          二. 通過編程導(dǎo)航 $router進(jìn)行路由跳轉(zhuǎn)

          1.路徑后拼接參數(shù)

          通過路徑后直接拼接來傳遞參數(shù)



          getDescribe(id) {

          // 直接調(diào)用$router.push 實(shí)現(xiàn)攜帶參數(shù)的跳轉(zhuǎn)

                  this.$router.push({

                    path: /describe/${id},

                  })



          對(duì)應(yīng)路由配置

          注意:此方法需要修改對(duì)應(yīng)路由配置,需要在path中添加/:id來對(duì)應(yīng) $router.push 中path攜帶的參數(shù)。



           {

               path: '/describe/:id',

               name: 'Describe',

               component: Describe

             }



          獲取傳遞的參數(shù)值



          this.$route.params.id

          1. 通過params來傳遞參數(shù)

            傳遞參數(shù)

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



             this.$router.push({

                      name: 'Describe',

                      params: {

                        id: id

                      }

                    })



            對(duì)應(yīng)路由配置

            注意這里不能使用:/id來傳遞參數(shù)了,因?yàn)橐呀?jīng)使用params來攜帶參數(shù)了。



            {

                 path: '/describe',

                 name: 'Describe',

                 component: Describe

               }



            獲取參數(shù)



            this.$route.params.id

            1
          2. 通過query來傳遞參數(shù)

            傳遞參數(shù)

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

            這種情況下 query傳遞的參數(shù)會(huì)顯示在url后面?id=?



            this.$router.push({

                      path: '/describe',

                      query: {

                        id: id

                      }

                    })



            對(duì)應(yīng)路由配置



             {

                 path: '/describe',

                 name: 'Describe',

                 component: Describe

               }



            獲取參數(shù)



            this.$route.query.id




          日歷

          鏈接

          個(gè)人資料

          存檔

          国产人久久人人人人爽 | 久久久久久国产精品美女 | 99精品国产在热久久| 久久久无码精品亚洲日韩按摩| 久久久久成人精品无码中文字幕 | 久久久久亚洲AV无码观看| 青草国产精品久久久久久| 久久se精品一区二区| 欧美一级久久久久久久大片 | 国产精品久久国产精麻豆99网站| 青青草原综合久久大伊人精品| 久久国产一片免费观看| 久久天天躁狠狠躁夜夜96流白浆| 天天久久狠狠色综合| 一本色道久久综合| 国内精品久久人妻互换| 亚洲综合久久夜AV | 久久亚洲欧美日本精品| 久久精品中文无码资源站| 久久国产精品国语对白| 久久精品a亚洲国产v高清不卡| 久久久久亚洲AV无码专区桃色| 久久精品国产亚洲欧美| 亚洲狠狠婷婷综合久久蜜芽| 久久久久久无码国产精品中文字幕| 亚洲国产精品无码久久久蜜芽 | 久久午夜免费视频| 91久久精品国产免费直播| 久久er99热精品一区二区| 一本色道久久综合| 一本一道久久a久久精品综合 | 国产成人精品久久一区二区三区| 久久久久se色偷偷亚洲精品av| 久久影视国产亚洲| 久久99国产精品成人欧美| 狠狠色丁香久久综合婷婷| 久久av无码专区亚洲av桃花岛| 亚洲日本va中文字幕久久| 99久久精品免费看国产一区二区三区 | 无码人妻精品一区二区三区久久 | 久久精品国产一区二区三区不卡|