vue3速览

简介: vue3速览

在您的Vue.js 3应用中,createApp 是用于创建一个Vue应用实例的函数。您已经正确地引入了它并开始创建应用,但目前根组件内部是空的。下面我将为您展示一个更完整的例子,说明如何设置根组件的模板、数据、方法等选项,并挂载到DOM上。

import { createApp } from 'vue'

const app = createApp({
  // 根组件的模板可以使用template属性定义
  template: `
    <div>
      <h1>{{ message }}</h1>
      <button @click="reverseMessage">{{ buttonText }}</button>
    </div>
  `,
  
  // 数据属性定义在setup函数中,返回一个对象
  setup() {
    let message = 'Hello Vue 3!';
    let buttonText = 'Reverse Message';

    // 方法也定义在setup函数内
    const reverseMessage = () => {
      message = message.split('').reverse().join('');
      buttonText = message === 'Hello Vue 3!' ? 'Reverse Message' : 'Original';
    };

    // 返回一个包含要注入到模板中的属性和方法的对象
    return {
      message,
      buttonText,
      reverseMessage
    };
  }
})

// 挂载应用到DOM的一个元素上,例如ID为'app'的元素
app.mount('#app')

在这个示例中,我们定义了一个简单的Vue 3应用,其根组件有一个欢迎信息和一个按钮。点击按钮会触发reverseMessage方法,该方法反转消息文本,并改变按钮的文本以反映是否显示原始消息或已反转的消息。最后,我们使用app.mount('#app')将这个应用挂载到HTML中ID为app的元素上。


记得在您的HTML文件中包含一个挂载点:

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

并且确保在使用此代码之前已经通过CDN或构建工具引入了Vue 3。

当然可以,Vue 3 应用允许你向根组件传递props。这在创建可复用的组件或需要根据外部条件初始化组件状态时非常有用。不过,与Vue 2不同,在Vue 3中,你需要在创建应用实例之后,使用app.provide()来提供全局属性,或者在挂载时直接传递props给根组件。这里展示如何直接向根组件传递props:


首先,修改你的JavaScript代码以接收props:

import { createApp } from 'vue'

const app = createApp({
  // ...
  setup(props) {
    // 现在你可以在这个函数内通过props访问传入的参数
    console.log(props.initialMessage);
    
    // 假设我们使用props来初始化message
    let message = props.initialMessage;
    // ... 其他逻辑保持不变 ...
  },
  // ...
})

然后,在挂载应用到DOM时传递props:

app.mount('#app', { initialMessage: 'Hello from props!' });

在这个例子中,我们向根组件传递了一个名为initialMessage的prop,并在setup函数中通过props参数访问它。这样,你就可以根据传递的参数来初始化应用的状态或其他配置了。


请注意,这种方式适用于简单场景或快速原型开发。对于更复杂的应用,推荐使用Vue的依赖注入系统(provide/inject)或者利用路由参数、状态管理库(如Vuex)来传递和管理状态。


目录
相关文章
|
9天前
|
存储 JavaScript 开发者
Vue 3 组件通信方式总结
Vue 3 组件通信方式总结
|
6天前
|
缓存 监控 UED
升级 Vue3 时,如何减少打包体积的增加?
升级 Vue3 时,如何减少打包体积的增加?
86 59
|
6天前
|
JavaScript
在vue3中(vite)引入unocss,安装配置unocss
在vue3中(vite)引入unocss,安装配置unocss
|
6天前
|
API UED
升级 Vue3 后,项目的打包体积会有什么变化?
升级 Vue3 后,项目的打包体积会有什么变化?
93 57
|
7天前
|
缓存 JavaScript 前端开发
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
该文章全面覆盖了Vue.js从基础知识到进阶原理的48个核心知识点,包括Vue CLI项目结构、组件生命周期、响应式原理、Composition API的使用等内容,并针对Vue 2与Vue 3的不同特性进行了详细对比与讲解。
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
|
9天前
|
存储 JavaScript API
Vue3基础(25)___初尝pinia,相比于vuex轻量、好用
本文介绍了Pinia在Vue 3中的使用,相比于Vuex,Pinia更轻量且易于使用。文章详细解释了Pinia的基本概念、优势,并提供了安装和使用Pinia的步骤,包括定义状态、getters、actions和如何在组件中使用Pinia进行状态管理。
31 3
Vue3基础(25)___初尝pinia,相比于vuex轻量、好用
|
6天前
|
API UED
如何实现Vue2项目升级Vue3?
如何实现Vue2项目升级Vue3?
14 1
|
9天前
|
JavaScript
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
|
9天前
|
存储 JavaScript
Vue 3 组件通信方式
Vue 3 组件通信方式
|
9天前
|
JavaScript 前端开发 API
Vue2与Vue3插槽使用的区别及案例
Vue 3在插槽功能上的改进,体现了其对开发体验的持续优化。通过简化API、加强动态特性和提升性能,Vue 3使得插槽的使用更加灵活和高效。这些改进不仅有助于减轻开发者的负担,还为组件之间的高级交互和内容复用打开了新的可能性。随着Vue生态系统的不断成熟,我们有理由相信,Vue将继续为前端开发提供强大且易用的工具。
16 3
下一篇
无影云桌面