组件快速入门

前言

最近开始在学vue相关的内容。组件这章的内容比较多。看了http://www.cnblogs.com/keepfool/p/5625583.html这篇博客,博主总结的还比较全面也挺清晰,可是这篇博客的知识点跟实例都是基于vue 1.0版本的,所以参考这篇博客,我将vue2.0版本中的相关知识点做了一个总结。算是自己学习的一个笔记

什么是组件?

组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。我们可以将组件看成是封装好的HTML元素。

本文的所有代码,都放在github上面https://github.com/xuxiaozhi/vue-tutorial,有需要的可以下载查看。

组件的注册和使用

全局注册

注册一个组件

要注册一个全局组件,你可以使用 Vue.component(tagName, options)来注册。如下实例:

        //1、注册一个全局的组件。要确保在初始化实例之前注册
        Vue.component(‘my-component‘,{
            template:"<div>这是第一个组件</div>"
        })

        //创建跟实例
        new Vue({
            el:"#app"
        })

使用组件

组件在注册之后,便可以在父实例的模块中以自定义元素 <my-component></my-component> 的形式使用。

注意:要确保组件是在初始化实例之前注册,要不然使用的时候会报错

        <div id="app">
            <my-component></my-component>
        </div>

组件使用后在页面中,将渲染成以下结构

局部注册组件

我们不必全局注册每一个组件,根据实际情况需要,我们可以采用局部注册的方式注册组件。如下实例

        new Vue({
            el:"#app",
            components:{
                ‘my-component‘:{
                    template:"<div>这个是局部注册的组件</div>"
                }
            }
        })

?注意

局部注册的组件仅在当前注册的实例或者组件内部使用。在其他地方引用将会报错,如下:

        <div id="app">
            <my-component></my-component>
        </div>
        <div id="app2">
            <my-component></my-component>
        </div>

在上述实例中,我们在”#app“元素所在的实例中,注册了一个组件,然后在“#app”和“#app2”内引用,查看源代码发现,只有“#app”内的组件渲染成了html代码,而在“#app2”内只是一个无意义的标签,如下图所示:

字符串模板

在组件中,我们一般使用字符串模板,字符串模板,主要有以下三种形式

  • 使用script标签
  • 使用template标签
  • 单文件组件

使用<script标签

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>组件相关</title>
    </head>
    <body>
        <div id="app">
            <my-component></my-component>
        </div>
        <script type="text/x-template" id="myComponent">
            <div>这是script模板</div>
        </script>
    </body>
    <script type="text/javascript" src="../js/vue.js" ></script>
    <script type="text/javascript">

        //全局注册一个组件
        Vue.component(‘my-component‘,{
            template:"#myComponent"
        })

        new Vue({
            el:"#app"
        })
    </script>
</html>

 注意点:

  1. 需要给script设置一个id,使用的时候,直接引用该id即可
  2. 使用<script>标签时,type指定为text/x-template,意在告诉浏览器这不是一段js脚本,浏览器在解析HTML文档时会忽略<script>标签内定义的内容。

使用template标签

template标签的用法跟script是一样的,区别在于template标签不需要设置type,直接设置一个id即可,一般情况下,我们建议使用这种方式来创建模板。如下所示

        <template id="myComponent">
            <div>这是script模板</div>
        </template>
时间: 2024-10-28 15:07:07

组件快速入门的相关文章

转: Vue.js——60分钟组件快速入门(上篇)

转自: http://www.cnblogs.com/keepfool/p/5625583.html Vue.js——60分钟组件快速入门(上篇) 组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或

Vue.js——组件快速入门(上篇)

Vue.js--60分钟组件快速入门(上篇) 组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 本文的Demo和源代码原作者已放到GitHub!(所有示例都放在GitHub Pages上了,请访问https://github.com/keepfool/vue-tutorial

Vue.js——60分钟组件快速入门(上篇)

组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或在GitHub上加个星星!(所有示例都放在GitHub Pages上了,请访问https://github.com/keepfool/vue-tut

Vue.js&mdash;&mdash;60分钟组件快速入门(上篇)

组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或在GitHub上加个星星! 组件单向绑定 组件双向绑定 组件单次绑定 Page Demo GitHub Source 由于组件的篇幅较大,我将会把组

Vue.js——60分钟组件快速入门

一.组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或在GitHub上加个星星!(所有示例都放在GitHub Pages上了,请访问https://github.com/keepfool/vue-t

【转】Vue.js——60分钟组件快速入门(上篇)

文章作者:keepfool 文章出处:http://www.cnblogs.com/keepfool/ 组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或在GitHub上加个星星!(所有示例都放在G

Vue.js——60分钟组件快速入门(下篇)

概述 上一篇我们重点介绍了组件的创建.注册和使用,熟练这几个步骤将有助于深入组件的开发.另外,在子组件中定义props,可以让父组件的数据传递下来,这就好比子组件告诉父组件:"嘿,老哥,我开通了一个驿站,你把东西放到驿站我就可以拿到了." 今天我们将着重介绍slot和父子组件之间的访问和通信,slot是一个非常有用的东西,它相当于一个内容插槽,它是我们重用组件的基础.Vue的事件系统独立于原生的DOM事件,它用于组件之间的通信. 本文的主要内容如下: 组件的编译作用域 在组件templ

Vue.js&mdash;&mdash;60分钟组件快速入门(下篇)

概述 上一篇我们重点介绍了组件的创建.注册和使用,熟练这几个步骤将有助于深入组件的开发.另外,在子组件中定义props,可以让父组件的数据传递下来,这就好比子组件告诉父组件:"嘿,老哥,我开通了一个驿站,你把东西放到驿站我就可以拿到了." 今天我们将着重介绍slot和父子组件之间的访问和通信,slot是一个非常有用的东西,它相当于一个内容插槽,它是我们重用组件的基础.Vue的事件系统独立于原生的DOM事件,它用于组件之间的通信. 本文的主要内容如下: 组件的编译作用域 在组件templ

vue2.0组件快速入门

前言 最近开始在学vue相关的内容.组件这章的内容比较多.看了http://www.cnblogs.com/keepfool/p/5625583.html这篇博客,博主总结的还比较全面也挺清晰,可是这篇博客的知识点跟实例都是基于vue 1.0版本的,所以参考这篇博客,我将vue2.0版本中的相关知识点做了一个总结.算是自己学习的一个笔记 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.我们可以将组件看成是封装好的HT