天天看點

Vue元件化定義元件化 定義全局元件局部元件

元件化

    元件化的概念

        Web 中的元件其實就是頁面組成的一部分,好比是電腦中的每一個元件(如硬碟、鍵盤、滑鼠),它是一個具有獨立的邏輯和功能或界面,同時又能根據規定的接口規則進行互相融合,變成一個完整的應用,頁面就是有一個個類似這樣的部分組成,比如導航、清單、彈窗、下拉菜單等。頁面隻不過是這些元件的容器,元件自由組合形成功能完善的界面,當不需要某個元件,或者想要替換某個元件時,可以随時進行替換和删除,而不影響整個應用的運作。

元件化的優點

    提高開發效率

    友善重複使用

    簡化調試步驟

    提升整個項目的可維護性

    便于協同開發

使用元件化實作輸入框

Vue元件化定義元件化 定義全局元件局部元件

文本送出

點選送出按鈕加入到已存在的li中

Vue元件化定義元件化 定義全局元件局部元件

我們先看一下布局

Vue元件化定義元件化 定義全局元件局部元件

div布局

    簡單的div布局

    循環list的值

    v-bind 是向元件傳遞值

    list周遊出來的值傳到content 再以v-bind傳入todo-item元件

示例:

    <todo-item v-bind:content="item"

              v-for="item in list">

    </todo-item>

定義全局元件在script标簽中

Vue元件化定義元件化 定義全局元件局部元件

定義全局元件

示例:

    Vue.component ("TodoItem",{

        //props接收todo-item傳過來的值 content在{{}}中展示在頁面中

        props:['content'],

        template:"<li>{{content}}</li>"

    });

局部元件

    html中依然不變

<todo-item v-bind:content="item"

          v-for="item in list">

</todo-item>

script标簽中

定義局部元件 template元件模闆

var TodoItem={

  props:['content'],

    template:"<li>{{content}}</li>"

};

局部元件使用

    注冊到vue執行個體中 使用components對象注冊

    TodoItem 注冊到執行個體中 名字依然為TodoItem

var app=new Vue({

    el:'#app',

    components:{

      TodoItem:TodoItem

  },

    data:{

      list:[],

        inputValue:''

    },

    methods:{

        handleBtnClick:function () {

          this.list.push(this.inputValue);

          this.inputValue='';

      }

    }

})

局部元件樣式與全局相同 隻是作用域不同

繼續閱讀