97国产精品视频人人做人人爱,3344在线观看无码,成年人国产视频,欧美日一级片,在线看AV天堂,高清无码一本到东京热,欧美一级黄片一区2区,免费又爽又刺激高潮网址

首頁(yè)

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è)庫(kù)



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



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



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



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



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



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

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

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

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

     - 作為過渡層

     - 避免誤操作

     - 保護(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)行頁(yè)面跳轉(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è)人資料

存檔

主站蜘蛛池模板: 国产成人8x视频一区二区| 欧美亚洲一二三区| 人妻丰满熟妇αv无码| 久久精品人人做人人爽97| 国产91无毒不卡在线观看| 国产微拍精品| 婷婷丁香色| 99无码熟妇丰满人妻啪啪 | 亚洲精品色AV无码看| 亚洲精选无码久久久| 伊人久久综在合线亚洲2019| 国产精品短篇二区| 成人福利在线视频| 成人在线不卡| 在线观看91精品国产剧情免费| 欧美一级在线| 又爽又黄又无遮挡网站| 成人免费视频一区二区三区 | 性欧美在线| 第一页亚洲| 日韩毛片在线视频| 亚洲精品你懂的| 人妻精品久久无码区| av一区二区无码在线| 97国产在线视频| 国内精品免费| 国产99精品久久| 在线永久免费观看的毛片| 毛片久久久| 日韩欧美国产另类| 99re在线观看视频| 婷婷成人综合| 日韩二区三区无| 毛片免费试看| 国产精品视频导航| 女同久久精品国产99国| 国产av无码日韩av无码网站| 久久综合色天堂av| 成人午夜网址| 人妻无码中文字幕第一区| 国产精品性| 国产二级毛片| 亚洲欧洲自拍拍偷午夜色| 无码中文字幕精品推荐| 亚洲侵犯无码网址在线观看| 免费在线视频a| 亚洲一级毛片在线观| 国产网站黄| 亚洲一区波多野结衣二区三区| 91毛片网| 国产裸舞福利在线视频合集| 国产主播福利在线观看| www.youjizz.com久久| 国产麻豆另类AV| 欧美成人午夜视频免看| 男女男精品视频| 精品午夜国产福利观看| 无码AV动漫| 欧美啪啪精品| 综合色88| 在线观看免费黄色网址| 波多野吉衣一区二区三区av| 午夜国产小视频| 精品无码国产自产野外拍在线| 毛片一区二区在线看| 91精品久久久无码中文字幕vr| av大片在线无码免费| 无码精品一区二区久久久| 国产欧美网站| 91麻豆精品视频| 搞黄网站免费观看| 高清色本在线www| 美女无遮挡免费网站| 亚洲 欧美 中文 AⅤ在线视频| 久久成人免费| 激情乱人伦| 国产www网站| 欧美不卡二区| 国产乱人伦精品一区二区| 午夜精品久久久久久久无码软件 | 亚洲欧美不卡| 国产在线98福利播放视频免费|