2018-05-28(表嚴肅)筆記三

三、過濾器及自定義組件

  1. 過濾器
    webstorm中捣炬,中文字符串顯示不出來
<div id="app">
    <div>
        <input v-model="length"> mm
        <br>
        {{length | meter}}
    </div>
    <hr>
    <div>
        <input v-model="price">
        <br>
        {{ price | currency('USD') }}
    </div>
</div>
<script src="vue.js"></script>
<script>
    Vue.filter('meter',function(val,unit){
        val = val || 0;
        unit = unit || 'm';
        return (val / 1000).toFixed(2) + unit;
    })
    Vue.filter('currency', function (val,unit) {
        val = val || 0;
        unit = unit || 'yuan';
        return val + unit;
    });

    new Vue({
        el: '#app',
        data: {
            price: 10,
            length:0
        }
    })
  1. 自定義組件
  • 基礎(chǔ)配置
    vue.directive
  • 配置傳參和修飾符
      <div v-pin:true.bottom.right="card1.pined" class="card">
        <button @click = "card1.pined = !card1.pined"/>
        i m a</div>
      <div v-pin.top.right="card2.pined" class="card">
       <a href="#" @click = "card2.pined = !card2.pined" >定住</a>
        i m b
      </div>

     Vue.directive('pin',function (el,binding) {
        var pined = binding.value;
        var position = binding.modifiers;
        var warning=binding.arg;
        console.log(pined);
       if(pined){
        el.style.position = 'fixed';
        for(var key in position){
            if(position[key]){
                el.style[key] = '15px';
            }
        }
        if(warning){
            el.style.background = "red";
        }
       }else {
        el.style.position = 'static'
       }
    })
    new Vue({
        el: '#app',
        data:{
            card1:{
                pined:false
            },
            card2:{
                pined:false
            }
        }
    })
  1. 混合mixins
    當在不同的組件里使用同一個功能時魄缚,為了避免多次封裝事件眷茁,將通用的事件裝進base數(shù)組中枫夺,在組件后面加mixins:[base]直接使用鹦马。
var base = {
            methods: {
            show:function(){
                this.visible = true
                // error:忘加this
            },
            hide:function(){
                this.visible = false
            },
            toggle:function(){
                this.visible = !this.visible
            }
        },
        data: function () {
        return{
            visible:false
            }
        },
}
   Vue.component('popup',{
    template:`
    <div>
    <span @mouseenter="show" @mouseleave="hide">滑過顯示</span>
    <div v-if="visible">
     嘎嘎嘎嘎嘎
    </div>
    </div>
    `,
    mixins:[base]
   })
    Vue.component('tooltip',{
    template:`
    <div>
    <button @click="toggle">點擊顯示</button>
    <span @click="hide">x</span>
    <div v-if="visible">
     哈哈啊哈
    </div>
    </div>
    `,
        mixins:[base]

   })
    new Vue({
        el: '#app',
    })
  1. 插槽 slots
    將內(nèi)容變成動態(tài)的文判,可編輯的
    在模板的某個塊中加入<slot>并指定名字过椎,在頁面中直接設(shè)置idv的屬性為slot,就可以動態(tài)修改內(nèi)容戏仓。
<div id="app">
    <box>
     <div slot="title"> title</div>
     <div slot="content"> YYYYYYYY</div>
     <div slot="footer">啊啊</div>
    </box>
    <box><div slot="content"> YYYYYYYY</div></box>
    <box><div slot="content"> YYYYYYYY</div></box>
</div>
<template id="box-tpl">
    <div class="box">
        <div class="title">
            <slot name="title"></slot>  
        </div>
        <div class="content">
            <slot name="content"></slot>    
        </div>
        <div class="footer">
           <slot name="footer">
               end
           </slot>
        </div>
    </div>
</template>

    Vue.component('box',{
        template:'#box-tpl',
    })
    new Vue({
        el: '#app',
    })
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疚宇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赏殃,更是在濱河造成了極大的恐慌敷待,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仁热,死亡現(xiàn)場離奇詭異榜揖,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門举哟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來思劳,“玉大人,你說我怎么就攤上這事妨猩∏迸眩” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵壶硅,是天一觀的道長威兜。 經(jīng)常有香客問我,道長庐椒,這世上最難降的妖魔是什么椒舵? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮扼睬,結(jié)果婚禮上逮栅,老公的妹妹穿的比我還像新娘。我一直安慰自己窗宇,他們只是感情好措伐,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著军俊,像睡著了一般侥加。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粪躬,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天担败,我揣著相機與錄音,去河邊找鬼镰官。 笑死提前,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的泳唠。 我是一名探鬼主播狈网,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笨腥!你這毒婦竟也來了拓哺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤脖母,失蹤者是張志新(化名)和其女友劉穎士鸥,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谆级,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡烤礁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年讼积,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸽凶。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡币砂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玻侥,到底是詐尸還是另有隱情,我是刑警寧澤亿蒸,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布凑兰,位于F島的核電站,受9級特大地震影響边锁,放射性物質(zhì)發(fā)生泄漏姑食。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一茅坛、第九天 我趴在偏房一處隱蔽的房頂上張望音半。 院中可真熱鬧,春花似錦贡蓖、人聲如沸曹鸠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彻桃。三九已至,卻和暖如春晾蜘,著一層夾襖步出監(jiān)牢的瞬間邻眷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工剔交, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肆饶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓岖常,卻偏偏與公主長得像驯镊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腥椒,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容阿宅,還有我對于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,050評論 0 29
  • 書本信息: ?<< Vue.js 實戰(zhàn) >>?作者: 梁灝 學(xué)習(xí)筆記 部分內(nèi)容摘自書 非原創(chuàng) 侵刪 第二章 數(shù)據(jù)綁...
    blue_avatar閱讀 716評論 0 2
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,214評論 0 6
  • 悠悠誰念笼蛛,脈脈誰知洒放,綿綿邈邈誰絕。慣了薄情滨砍,卻不慣秋殘月往湿。櫳簾月中月外妖异,是幾番、掩了還揭领追。不待揭他膳,又恐凌波幸,挽風(fēng)...
    姑射閱讀 402評論 3 12
  • 01 吳仲凱醫(yī)生死了绒窑,死在手術(shù)臺上棕孙,死前,他知道海洋抄襲了他的論文些膨,但還是對他說蟀俊,你會成為一個好醫(yī)生的。 海洋悔恨...
    打呼的蕾蕾閱讀 597評論 0 1