码迷,mamicode.com
首页 > 其他好文 > 详细

组件化应用构建

时间:2017-05-30 16:21:10      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:技术   属性   创建   自定义属性   div   循环语句   应用程序   代码   code   

在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例

 

一个组件实例

<div id="app1">
    <ol>
        <!-- 创建一个com1组件实例 -->
        <com1 v-for="item in list" v-bind:todo="item"></com1>
    </ol>
</div>
//注册一个名为com1的组件
Vue.component("com1", {
    props: ["todo"],
    template: "<li>{{todo.text}}</li>"
});



new Vue({
    el: "#app1",
    data: {
        list: [
            {text: "大碗喝酒"},
            {text: "大块吃肉"},
            {text: "大刀向鬼子的头上砍去"}
        ]
    }
});

 

运行结果

技术分享

这个效果和我在循环语句中编写的实例效果是一样的。

也就是说,可以尝试用v-for指令来代替这个组件。

<div id="app1">
    <ol>
        <li v-for="item in list">{{item.text}}</li>
    </ol>
</div>
new Vue({
    el: "#app1",
    data: {
        list: [
            {text: "大碗喝酒"},
            {text: "大块吃肉"},
            {text: "大刀向鬼子的头上砍去"}
        ]
    }
});

 

通过两端代码的比较,尝试分析一下构建组件的过程:

  • 注册一个组件com1,规定它的模板(template),规定了一个自定义属性(props)todo
  • 组件构造成功后,就可以使用<com1>标签了,由于我的目的是要将list数组的3个数据渲染到DOM中,<com1>标签要使用v-for指令来遍历这个对象数组。OK,指令使用了,但<com1>标签中不能写{{}}来绑定数据啊,数据绑定已经在组件模板中写好了,再次使用报错,也不合逻辑。嗯,根据经验,这里是要传参吧。把v-for指令返回的数据传给com1组件的todo属性。有兴趣的可以找个纸笔,划一下结构,是正好等价的。

 

 

在一个大型应用中,有必要将整个应用程序划分为多个组件,以便开发管理。

 

组件化应用构建

标签:技术   属性   创建   自定义属性   div   循环语句   应用程序   代码   code   

原文地址:http://www.cnblogs.com/jiaoxuanwen/p/6920298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!