Vue組件初理解

1.組件和模塊的區(qū)別

  • 模塊化: 是從代碼邏輯的角度進(jìn)行劃分的蛀柴;方便代碼分層開(kāi)發(fā)比然,保證每個(gè)功能模塊的職能單一囤攀;
  • 組件化: 是從UI界面的角度進(jìn)行劃分的软免;前端的組件化,方便UI組件的重用焚挠;

2.全局組件

使用Vue.extend來(lái)創(chuàng)建全局組件
創(chuàng)建組件的第一種方法:

var com1=Vue.extend({
  template:'<h3>呵呵</h3>';
  );
Vue.component("mycom1",com1);

創(chuàng)建組件的第二種方法:

Vue.componnent("mycom2",{
  template:'<h3>呵呵</h3>';
});

創(chuàng)建組件的第三種方法:

//在實(shí)例對(duì)象的外面定義模板
<template id="con">
<h3>呵呵</h3>
</template>


Vue.componnent("mycom3",{
  template:'#con';
});
屬性:

template指定了組件展示的結(jié)構(gòu)膏萧,里面有且只能有1個(gè)根元素

注意點(diǎn):

創(chuàng)建組件時(shí)可以用駝峰命名法,但是在使用的時(shí)候要改為"-"

3.私有組件

定義實(shí)例私有組件:

var vm= Vue({
  components:{
    login:{
      template:'<h3>呵呵</h3>';
    }
  }
});

4.組件傳值

父?jìng)髯?/h5>

屬性:父組件,可以在引用子組件的時(shí)候榛泛, 通過(guò) 屬性綁定(v-bind:) 的形式, 把 需要傳遞給 子組件的數(shù)據(jù)蝌蹂,以屬性綁定的形式,傳遞到子組件內(nèi)部曹锨,供子組件使用

<div id="app">
        //a綁定父組件數(shù)據(jù)msg
        <do :a="msg"></do>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: "組件傳值"
            },
            components: {
                do: {
                    data() {
                        return {
                            m: "貪玩藍(lán)月",
                            n: "真好"
                        }
                    },
                    template: '<h1>{{m}}===學(xué)習(xí)了==={{a}}===<do2 :b="n"></do2></h1>',
                    props: ["a"],// 把父組件傳遞過(guò)來(lái)的 parentmsg 屬性孤个,先在 props 數(shù)組中,定義一下沛简,這樣齐鲤,才能使用這個(gè)數(shù)據(jù)
                    components: {
                        do2: {
                            data() {
                                return {
                                    s: "我想"
                                }
                            },
                            template: "<span>{{s}}==={}</span>",
                            props: ["b"]
                        }

                    }
                }
            }
        })
    </script>

方法:父組件向子組件 傳遞 方法椒楣,使用的是 事件綁定機(jī)制给郊; v-on, 當(dāng)我們自定義了 一個(gè) 事件屬性之后,那么捧灰,子組件就能夠丑罪,通過(guò)某些方式,來(lái)調(diào)用 傳遞進(jìn)去的 這個(gè)方法了

子傳父

先父?jìng)髯臃椒ǚ锉冢缓笞訑y帶參數(shù)給父吩屹,完成傳參

<div id="app">
        {{shuju}}
        <!--子通過(guò)事件綁定定義一個(gè)事件屬性-->
        <con1 @temp="show"></con1>
    </div>
    <template id="con1">
        <!--子通過(guò)點(diǎn)擊事件向父?jìng)髦?->
        <input type="button" @click="dian" value="www">
    </template>
    <script>
        Vue.component('con1', {
            template: '#con1',
            data() {
                return {
                    msg: "嘻嘻哈哈"
                }
            },
            methods: {
                dian() {
                    // 當(dāng)點(diǎn)擊子組件的按鈕的時(shí)候,如何 拿到 父組件傳遞過(guò)來(lái)的 func 方法拧抖,并調(diào)用這個(gè)方法煤搜??唧席?
                   //  emit 英文原意: 是觸發(fā)擦盾,調(diào)用、發(fā)射的意思淌哟,后面參數(shù)是攜帶的參數(shù)
                    this.$emit("temp", this.msg)
                }
            }
        })
        var vm = new Vue({
            el: '#app',
            data: {
                shuju: ""
            },
            methods: {
                show(data) {
                    //父獲取子傳過(guò)來(lái)的攜帶參數(shù)迹卢,然后賦值給自己的數(shù)據(jù)
                    console.log('ok');
                    console.log(data)
                    this.shuju = data;
                }
            }
        })

獲取DOM
通過(guò)實(shí)例的ref可以獲取dom元素

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市徒仓,隨后出現(xiàn)的幾起案子腐碱,更是在濱河造成了極大的恐慌,老刑警劉巖掉弛,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件症见,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡殃饿,警方通過(guò)查閱死者的電腦和手機(jī)谋作,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乎芳,“玉大人遵蚜,你說(shuō)我怎么就攤上這事帖池。” “怎么了吭净?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵睡汹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我攒钳,道長(zhǎng)帮孔,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任不撑,我火速辦了婚禮文兢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焕檬。我一直安慰自己姆坚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布实愚。 她就那樣靜靜地躺著兼呵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腊敲。 梳的紋絲不亂的頭發(fā)上击喂,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音碰辅,去河邊找鬼懂昂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛没宾,可吹牛的內(nèi)容都是我干的凌彬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼循衰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼铲敛!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起会钝,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤伐蒋,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后顽素,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體咽弦,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年胁出,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片段审。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡全蝶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抑淫,我是刑警寧澤绷落,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布始苇,位于F島的核電站砌烁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏催式。R本人自食惡果不足惜函喉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荣月。 院中可真熱鬧管呵,春花似錦、人聲如沸哺窄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萌业。三九已至坷襟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間生年,已是汗流浹背婴程。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晶框,地道東北人排抬。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像授段,于是被迫代替她去往敵國(guó)和親蹲蒲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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