当前位置: 首页 > article >正文

Vue3——创建一个应用

文章目录

  • 创建应用实例
  • 挂载应用
    • 没有模板的组件的挂载
  • 应用配置
  • 多个应用实例

其实使用脚手架创建的vue项目的main.js文件中已经为我们配置好 vue应用的创建。

import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.mount('#app')

创建应用实例

每个 Vue 应用都是通过 createApp 函数创建一个新的 应用实例。
createApp的参数应该是一个组件,应该是应用的跟组件,其他组将将作为其子组件。
该组件可以是从其他文件夹引入的.vue文件,也可以是直接编写的组件内容:

  • 引入文件做参数
import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)
  • 直接编写组件内容
import { createApp } from 'vue'

const app = createApp({
  template:'<div>组件的模板内容</div>', 
  data() {
    return {
      count: 0
    }
  }
})

挂载应用

创建好的应用实例必须在调用了 .mount() 方法后才会渲染出来。.mount()方法接受一个“容器”参数,可以是一个实际的DOM元素,也可以是一个CSS选择器字符串。

index.html(容器位置):

<div id="app"></div>

挂载:

app.mount('#app')

应用实例的内容将会被渲染在容器元素里面。容器元素自己将不会被视为应用的一部分

.mount() 方法应该始终在整个应用配置和资源注册完成后被调用。同时请注意,不同于其他资源注册方法,它的返回值是根组件实例而非应用实例

没有模板的组件的挂载

根组件的模板通常是组件本身的一部分:

  • 在组件的配置项中编写template配置项
  • 或者在组建文件的<template></template>中直接编写模板。

但是组件也可能并没有模板,此时如果该组件作为根组件进行挂在的时候,Vue 将自动使用容器innerHTML 作为模板

eg:
index.html

<div id="app">
  <button @click="count++">{{ count }}</button>
</div>

main.js

import { createApp } from 'vue'

const app = createApp({
  data() {
    return {
      count: 0
    }
  }
})

app.mount('#app')

页面展示一个0

应用配置

应用实例会暴露一个 .config 对象允许我们配置一些应用级的选项:

  • 配置错误处理器,捕获所有子组件上的错误
app.config.errorHandler = (err) => {
  /* 处理错误 */
}
  • 注册组件
    应用实例提供了一些方法来注册应用范围内可用的资源,例如注册一个组件:
app.component('TodoDeleteButton', TodoDeleteButton)

多个应用实例

用实例并不只限于一个。createApp API 允许你在同一个页面中创建多个共存的 Vue 应用,而且每个应用都拥有自己的用于配置和全局资源的作用域。
main.js

const app1 = createApp({
  /* ... */
})
app1.mount('#container-1')

const app2 = createApp({
  /* ... */
})
app2.mount('#container-2')

http://www.kler.cn/a/230032.html

相关文章:

  • 【kafka03】消息队列与微服务之Kafka 读写数据
  • ORB-SLAM2 ----Tracking::NeedNewKeyFrame()和Tracking::CreateNewKeyFrame()
  • (即插即用模块-Attention部分) 二十、(2021) GAA 门控轴向注意力
  • gRPC 双向流(Bidirectional Streaming RPC)的使用方法
  • 在Unity中实现物体动画的完整流程
  • 爬虫开发(5)如何写一个CSDN热门榜爬虫小程序
  • 【知识图谱+大模型的紧耦合新范式】Think-on-Graph:解决大模型在医疗、法律、金融等垂直领域的幻觉
  • 第七届西湖论剑·中国杭州网络安全技能大赛 AI 回声海螺 WP
  • ETL是什么,有哪些ETL工具?就业前景如何?
  • Java设计模式-责任链模式
  • 【类与对象(中)】
  • Java开发IntelliJ IDEA2023
  • GitLag所有操作-汇总
  • vue 修饰器
  • Rust基础拾遗--看的不多只看一篇--基础
  • 09-错误处理
  • Vue-54、Vue技术vuex中四个map使用(mapState、mapGetters、mapActions、mapMutations)
  • 阿里云服务器centos_7_9_x64位,3台,搭建k8s集群
  • 幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤
  • 计算机网络——新型网络架构:SDN/NFV
  • 【计算机二级考试C语言】C可变参数
  • docker复习笔记01(小滴课堂)安装+部署mysql
  • C语言应用实例——贪吃蛇
  • 微信小程序学习指南:从基础知识到代码展示
  • Java SE入门及基础(26)
  • TCP 了解