Vue學習筆記3-高級知識

  • 注意: 撰寫本文目的主要是為了給自己做一個備忘錄翔烁,如果你學過vue并且希望從本文中找到一些忘記的知識點诫隅,那么你可以閱讀本文章管闷。由于文章內(nèi)講解并不是很多拯刁,因此此文章并不適合小白入門使用。

8.生命周期

  • 每個Vue實例創(chuàng)建時纵揍,都會經(jīng)歷一系列的初始化過程顿乒,同時也會調(diào)用相應的生命周期鉤子,我們可以利用這些鉤子泽谨,在合適的時機執(zhí)行我們的業(yè)務邏輯璧榄。
  • 常用的鉤子:
    create: 實例創(chuàng)建完成后調(diào)用特漩,此階段完成了數(shù)據(jù)的觀測等,但尚未掛載骨杂,$el還不可用涂身,需要初始化處理一些數(shù)據(jù)時會比較有用。
    mounted: el掛載到實例上后調(diào)用搓蚪,一般我們的第一個業(yè)務邏輯會在這里開始访得。
    beforeDestory: 實例銷毀之前。主要解綁一些使用addEventListener監(jiān)聽的事件

示例代碼:

  <div id="test">
    <button @click="killVM">killvm</button>  <!--click的名稱不能含有destory陕凹?-->
    <p v-show="isShow">王順順</p>
  </div>

  <script type="text/javascript">
    new Vue({
      el: '#test',
      data: {
        isShow: true
      },

      mounted() {                  //初始化之后立即調(diào)用(1次)
        this.intervalId = setInterval(() => { //如果用function的話,this就是指window
          this.isShow = !this.isShow
            console.log("---------");
        }, 1000)
      },

      beforeDestroy() {            //死亡時前調(diào)用一次
          //清除定時器
          clearInterval(this.intervalId)
      },

      methods: {
          killVM() {
              this.$destroy()       //但是停止之后會有內(nèi)存泄漏,定時器仍然在執(zhí)行鳄炉,需要清除定時器
          }
      }
    })
  </script>

9.過濾器

  • 過濾器主要用于數(shù)據(jù)的格式化杜耙,例如格式化日期。

前端頁面展示:

日期格式化

前端代碼:

<div id="test">

    <h2>顯示格式化的日期時間</h2>
    <p>{{date}}</p>
    <p>完整版:{{date | dateString}}</p>
    <p>日期:{{date | dateString('YYYY-MM-DD')}}</p>
    <p>時間:{{date | dateString('HH:mm:ss')}}</p>
    <!--此語句會將date的值傳輸給dateString過濾器處理-->

</div>

js代碼:

<script>
    //自定義過濾器
    Vue.filter('dateString', function (value, format) {
      return moment(value).format(format || 'YYYY-MM-DD HH:mm:ss')
    })
    // Vue.filter('dateString', function (value, format='YYYY-MM-DD HH:mm:ss') {
    //   return moment(value).format(format)
    // })

    new Vue({
      el: '#test',
      data: {
        date: new Date()
      }
    })
</script>

10.指令

10.1.基礎(chǔ)使用

<!--css樣式-->
<style>
    [v-cloak] {
      display: none;
      /*配合實現(xiàn) v-cloak*/
    }
</style>


<!--前端頁面代碼-->
<div id="example">
    <p ref="content">xztywss.top</p>
    <button @click="hint">提示</button>

    <!-- <p>{{msg}}</p> -->
    <p v-cloak>{{msg}}</p> //v-cloak 防止閃現(xiàn) 需要配合css實現(xiàn)
</div>


<!--js代碼-->
<script>
    new Vue({
        el: '#example',
        data: {
            msg: "wss"
        },
        methods: {
            hint() {
                alert(this.$refs.content.textContent) //textContent = innerhtml
            }
        }
    })
</script>

10.2.注冊指令

  • 沒有太多需要解釋的拂盯,這里僅僅給出一段示例代碼佑女,想了解更多請百度搜索吧!

示例代碼:

<body>

    <!-- 1) 注冊全局指令 
        Vue.directive('my-directive',function(el,binding){ 
        el.innerHTML=binding.value.toupperCase() 
    }) 
    2) 注冊局部指令 
    directives:{ 
        'my-directive':{
             bind(el,binding){
                 el.innerHTML=binding.value.toupperCase() 
             } 
         } 
    } 
    3) 使用指令 v-my-directive='xxx' -->


    <div id="test1">
        <p v-upper-text="msg1"></p>
        <p v-lower-text="msg1"></p>
    </div>

    <div id="test2">
        <p v-upper-text="msg2"></p>
        <p v-lower-text="msg2"></p>
    </div>

    <script>
        //定義全局指令
        //el 指令屬性所在的標簽對象
        //binding 包含指令相關(guān)信息數(shù)據(jù)的對象
        Vue.directive('upper-text', function (el, binding) {
            console.log(el, binding)
            el.textContent = binding.value.toUpperCase()
        })

        new Vue({
            el: '#test1',
            data: {
                msg1: 'NBA I Love This Game'
            },

            //局部指令
            directives: {
                // 'lower-text': function (el, binding) {
                //     el.textContent = binding.value.toLowerCase()
                // }
                'lower-text'(el, binding) {
                     el.textContent = binding.value.toLowerCase()
                }
            }
        })

        new Vue({
            el: '#test2',
            data: {
                msg2: 'Just Do It谈竿!'
            }
        })
  </script>

</body>

11.插件

  • 合理地使用插件能使我們做項目的過程中達到事半功倍的效果团驱,此處給出一個簡單示例

簡單實例:

<body>

    <div id="test">
        <p v-my-directive="msg"></p>
    </div>

    <script type="text/javascript">
        //聲明使用插件
        Vue.use(MyPlugin) //內(nèi)部會執(zhí)行MyPlugin.install(Vue)

        Vue.myGlobalMethod()


        const vm = new Vue({
            el: '#test',
            data: {
                msg: 'I Love You!'
            }
        })
        vm.$myMethod();
    </script>

</body>

文集推薦:

Java基礎(chǔ)方法集1
Python基礎(chǔ)知識完整版
Spring Boot學習筆記
Linux指令進階
Java高并發(fā)編程
SpringMVC基礎(chǔ)知識進階
Mysql基礎(chǔ)知識完整版
健康管理系統(tǒng)學習花絮(學習記錄)
Node.js基礎(chǔ)知識(隨手筆記)
MongoDB基礎(chǔ)知識
Dubbo學習筆記
Vue學習筆記(隨手筆記)

聲明:發(fā)表此文是出于傳遞更多信息之目的朽们。若有來源標注錯誤或侵犯了您的合法權(quán)益朦蕴,請作者持權(quán)屬證明與本我們(QQ:981086665腹躁;郵箱:981086665@qq.com)聯(lián)系聯(lián)系抑月,我們將及時更正蚊锹、刪除挖帘,謝謝亥宿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姥敛,一起剝皮案震驚了整個濱河市道逗,隨后出現(xiàn)的幾起案子兵罢,更是在濱河造成了極大的恐慌,老刑警劉巖滓窍,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卖词,死亡現(xiàn)場離奇詭異,居然都是意外死亡吏夯,警方通過查閱死者的電腦和手機此蜈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來噪生,“玉大人舶替,你說我怎么就攤上這事「茉埃” “怎么了顾瞪?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我陈醒,道長惕橙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任钉跷,我火速辦了婚禮弥鹦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘爷辙。我一直安慰自己彬坏,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布膝晾。 她就那樣靜靜地躺著栓始,像睡著了一般。 火紅的嫁衣襯著肌膚如雪血当。 梳的紋絲不亂的頭發(fā)上幻赚,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音臊旭,去河邊找鬼落恼。 笑死,一個胖子當著我的面吹牛离熏,可吹牛的內(nèi)容都是我干的佳谦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼滋戳,長吁一口氣:“原來是場噩夢啊……” “哼吠昭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起胧瓜,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤矢棚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后府喳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒲肋,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年钝满,在試婚紗的時候發(fā)現(xiàn)自己被綠了兜粘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡弯蚜,死狀恐怖孔轴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碎捺,我是刑警寧澤路鹰,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布贷洲,位于F島的核電站,受9級特大地震影響晋柱,放射性物質(zhì)發(fā)生泄漏优构。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一雁竞、第九天 我趴在偏房一處隱蔽的房頂上張望钦椭。 院中可真熱鬧,春花似錦碑诉、人聲如沸彪腔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽德挣。三九已至,卻和暖如春泪幌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背署照。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工祸泪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人建芙。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓没隘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親禁荸。 傳聞我的和親對象是個殘疾皇子右蒲,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349