Vue 创建组件的两种方法

本文介绍了Vue.js中组件的两种注册方式:全局注册和局部注册。通过实例展示了如何使用Vue.component()进行全局注册,并在组件选项对象中实现局部注册。文章还强调了局部注册组件的使用限制。

创建组件的两种方法

1.全局注册
2.局部注册

var child=Vue.extend({})

var parent=Vue.extend({})

Vue.extend() 全局方法 生成构造器,创建子类

使用基础 Vue 构造器,创建一个“子类”。

这样写非常繁琐。于是vue进行了简化

使用Vue.component()直接创建和注册组件:

Vue.component(id,options) 全局方法 用来注册全局组件

id 是string类型,即是注册组件的名称
options 是个对象

// 全局注册,my-component1是标签名称
Vue.component('my-component1',{
    template: '<div>This is the first component!</div>'
})

var vm1 = new Vue({
    el: '#app1'
})

Vue.component()的第1个参数是标签名称,第2个参数是一个选项对象,使用选项对象的template属性定义组件模板。
使用这种方式,Vue在背后会自动地调用Vue.extend()。

在选项对象的components属性中实现局部注册:
var vm2 = new Vue({
    el: '#app2',
    components: {
        // 局部注册,my-component2是标签名称
        'my-component2': {
            template: '<div>This is the second component!</div>'
        },
        // 局部注册,my-component3是标签名称
        'my-component3': {
            template: '<div>This is the third component!</div>'
        }
    }
})

==局部注册都放在选项对象中创建==

注意:这里是components,里面可以定义多个组件。

简化后是这样的写法

<body>
    <div id='box'>      
        <parent>        
        </parent>
    </div>

    <script src='js/vue.js'></script>
    <script>

        Vue.component('parent',{
            template:`<div><h1>我是父组件</h1><child></child></div>`,
                components:{
                'child':{
                    template:`<h1>我是子组件</h1>`
                }
            }
        })


        new Vue({
            el:'#box'
        })

    </script>
</body>

注册一个parent的父组件。然后在父组件的选项对象中注册一个child的子组件。将子组件child的标签写到父组件parent的template里面。

页面上的样式结构就是

<div>
    <h1>我是父组件</h1>
    <h1>我是子组件</h1>
</div>

注意:用局部注册的子组件不能单独直接使用!

标签挂在div里,会报错

<div id='box'>      
    <child></child>
</div>

结果会报错
<think>好的,用户想了解Vue创建两种方法。首先我要确定用户指的是Vue.js框架的两种主要创建方式。常见的创建Vue项目的方法两种:直接通过CDN引入和使用Vue CLI脚手架工具。需要确认这两种方法是否还存在其他变体,比如Vite的出现,但用户可能指的是传统方法,所以先聚焦于CDN和CLI。 接下来,我需要详细说明这两种方法的具体步骤。对于CDN引入,需要解释如何通过HTML文件中的script标签引入Vue,并给出一个简单的示例代码,展示如何创建Vue实例和应用的基础结构。同时,要提到CDN方式的适用场景,比如快速原型开发或小型项目。 然后是Vue CLI的部分,需要说明安装过程,使用npm或yarn安装CLI工具,然后通过命令行创建项目,选择配置,并启动开发服务器。这里要注意指导用户如何操作,包括安装命令、创建项目的步骤,以及项目结构的基本介绍。还要强调CLI适合中大型项目,提供了构建工具和现代化的工作流。 另外,可能用户对Vue 3的新特性感兴趣,比如使用Vite作为构建工具,但根据问题描述,用户可能只需要基础的两种方法,所以暂时不深入Vite,除非用户后续提问。需要检查是否有其他创建方法,比如通过Vue的官方模板或者其他构建工具,但按照常规回答,CDN和CLI是最常见的两种方法。 还要确保回答结构清晰,分步骤说明,每个方法都有示例代码和适用场景的比较。同时,要使用中文,避免专业术语过多,保持易懂。需要验证LaTeX格式是否正确,不过在这个问题中可能用不上数学公式,但系统级指令中提到行内数学表达式要用$...$,所以如果有变量或代码片段,可能需要处理,但这里主要是代码块,所以应该用反引号包裹。 最后,总结两种方法的优缺点,帮助用户根据项目需求选择合适的方式。确保回答准确,没有错误信息,比如Vue CLI的安装命令是否正确,是否需要全局安装等。可能还需要提醒用户Node.js环境的准备,对于CLI方式来说,这是前提条件。检查是否有遗漏的步骤或常见问题,比如CDN引入时的版本选择,或者CLI创建时的配置选项。</think>Vue.js 的两种常见创建方法及详细步骤: 一、CDN 直接引入法 (适用于快速原型开发) ```html <!DOCTYPE html> <html> <head> <!-- 引入 Vue 3 CDN --> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> </head> <body> <div id="app"> {{ message }} <!-- 显示数据绑定 --> </div> <script> // 创建 Vue 应用实例 const { createApp } = Vue; createApp({ data() { return { message: 'Hello Vue!' // 响应式数据 } } }).mount('#app'); // 挂载到 DOM 元素 </script> </body> </html> ``` 特点: - 即插即用,无需构建步骤 - 适合学习、演示或小型功能开发 - 文件体积约 500KB (生产环境建议指定具体版本) 二、Vue CLI 脚手架创建 (推荐用于正式项目) 1. 安装 Node.js (需 ≥14.18.0) 2. 通过终端执行: ```bash npm install -g @vue/cli # 全局安装 CLI vue create my-project # 创建项目 ``` 3. 选择预设配置: ``` ? Please pick a preset: Default ([Vue 3] babel, eslint) # Vue 3 默认配置 Default ([Vue 2] babel, eslint) # Vue 2 默认配置 Manually select features # 自定义选项 ``` 4. 项目结构说明: ``` ├── node_modules/ # 依赖库 ├── public/ # 静态资源 ├── src/ # 源码目录 │ ├── assets/ # 静态资源 │ ├── components/ # 组件 │ ├── App.vue # 根组件 │ └── main.js # 入口文件 ├── package.json # 项目配置 └── vue.config.js # 自定义配置 ``` 5. 启动开发服务器: ```bash cd my-project npm run serve ``` 对比说明: | 特性 | CDN 引入 | Vue CLI | |-------------------|----------------------------|-----------------------------| | 适用场景 | 简单页面/快速验证 | 中大型项目/工程化开发 | | 构建工具 | 无 | Webpack/Vite | | 单文件组件(.vue) | 不支持 | 支持 | | 热重载 | 无 | 支持 | | 生产优化 | 需手动处理 | 自动代码压缩/拆分 | 建议选择策略: - 学习基础语法 → CDN 方式 - 开发实际项目 → Vue CLI - 最新项目可考虑 Vite 创建(`npm create vue@latest`)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值