Vue组件化定义

  1. 云栖社区>
  2. 博客>
  3. 正文

Vue组件化定义

program_黑 2018-10-24 22:52:00 浏览800

组件化

    组件化的概念

        Web 中的组件其实就是页面组成的一部分,好比是电脑中的每一个元件(如硬盘、键盘、鼠标),它是一个具有独立的逻辑和功能或界面,同时又能根据规定的接口规则进行相互融合,变成一个完整的应用,页面就是有一个个类似这样的部分组成,比如导航、列表、弹窗、下拉菜单等。页面只不过是这些组件的容器,组件自由组合形成功能完善的界面,当不需要某个组件,或者想要替换某个组件时,可以随时进行替换和删除,而不影响整个应用的运行。

组件化的优点

    提高开发效率

    方便重复使用

    简化调试步骤

    提升整个项目的可维护性

    便于协同开发

使用组件化实现输入框

img_4a3ff2e1c072a2e038ef1805e5bcc5a0.jpe
文本提交

点击提交按钮加入到已存在的li中

img_94e4fce0790cea2498885f2c3dbd025b.jpe
文本提交

我们先看一下布局

img_96f4ba1aae3089c50e203a1e28499ac2.jpe
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标签中

img_7f01248f1a0989c15c2810e0f1762948.jpe
定义全局组件在script标签中

定义全局组件

示例:

    Vue.component ("TodoItem",{

        //props接收todo-item传过来的值 content在{{}}中展示在页面中

        props:['content'],

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

    });

局部组件

    html中依然不变

    循环list的值

    v-bind 是向组件传递值

    list遍历出来的值传到content 再以v-bind传入todo-item组件

示例:

<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='';

      }

    }

})

局部组件样式与全局相同 只是作用域不同