前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue教程(组件-创建方式)

Vue教程(组件-创建方式)

作者头像
用户4919348
发布2019-07-25 16:43:23
5710
发布2019-07-25 16:43:23
举报
文章被收录于专栏:波波烤鸭波波烤鸭

  本文我们开始来介绍下Vue中的组件,组件可复用的 Vue 实例,且带有一个名字。

Vue组件

  基础页面如下

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">

    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {

            },
            methods: {
                
            }
        })
    </script>
</body>
</html>

1.通过extend方式

  我们先通过最原始的方式来实现看看,首先通过Vue.extends方法来定义一个全局组件。template 就是组件将来要展示的HTML内容

代码语言:javascript
复制
 // 1.使用 Vue.extend 来创建全局的Vue组件
 var com1 = Vue.extend({
     template: "<h3>这是个Vue组件</h3>"
 })

  然后通过Vue.component来添加我们的组件

代码语言:javascript
复制
// 2.使用 Vue.component('组件的名称', 创建出来的组件模板对象)
Vue.component("myCom",com1);

注意组件的名称如果采用的是 驼峰命名法,那么在使用组件的时候 大写必须改为 小写 而且要用 “-”连接。 都是小写就没有关系了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

当然上面的写法我们也看以简写为如下:

代码语言:javascript
复制
Vue.component("myCom",Vue.extend({
      template: "<h3>这是我们使用的另一个组件</h3>"
  }))
在这里插入图片描述
在这里插入图片描述

2.简写方式

  第二种创建Vue组件的方式其实是在前面的基础上我们可以简写Vue.extend() 创建全局Vue组件的操作,如下

代码语言:javascript
复制
Vue.component("myCom",{
     template: "<h2> 第二种创建的方式  </h2>"
 })
在这里插入图片描述
在这里插入图片描述

注意 创建的组件HTML元素只能有一个root标签,如果有多个会报错,如下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用div括起来就可以了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.template标签

  在上面的例子中我们的组件元素都是直接在template中直接通过字符串来声明的,这种书写的时候没有智能提示,容易出现错误,这时我们可以通过<template> 标签来定义 组件 HTML元素 然后通过id来使用。具体如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.私有组件定义

  上面我定义的都是全局的组件,接下来我们看看在单个Vue实例中定义私有的组件。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用不属于当前Vue实例的组件会报错

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

搞定~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Vue组件
    • 1.通过extend方式
      • 2.简写方式
        • 3.template标签
          • 4.私有组件定义
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档