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)来传递和管理状态。


目录
相关文章
|
2月前
|
JavaScript 前端开发 安全
Vue 3
Vue 3以组合式API、Proxy响应式系统和全面TypeScript支持,重构前端开发范式。性能优化与生态协同并进,兼顾易用性与工程化,引领Web开发迈向高效、可维护的新纪元。(238字)
568 139
|
2月前
|
缓存 JavaScript 算法
Vue 3性能优化
Vue 3 通过 Proxy 和编译优化提升性能,但仍需遵循最佳实践。合理使用 v-if、key、computed,避免深度监听,利用懒加载与虚拟列表,结合打包优化,方可充分发挥其性能优势。(239字)
265 1
|
7月前
|
缓存 JavaScript PHP
斩获开发者口碑!SnowAdmin:基于 Vue3 的高颜值后台管理系统,3 步极速上手!
SnowAdmin 是一款基于 Vue3/TypeScript/Arco Design 的开源后台管理框架,以“清新优雅、开箱即用”为核心设计理念。提供角色权限精细化管理、多主题与暗黑模式切换、动态路由与页面缓存等功能,支持代码规范自动化校验及丰富组件库。通过模块化设计与前沿技术栈(Vite5/Pinia),显著提升开发效率,适合团队协作与长期维护。项目地址:[GitHub](https://github.com/WANG-Fan0912/SnowAdmin)。
1018 5
|
3月前
|
开发工具 iOS开发 MacOS
基于Vite7.1+Vue3+Pinia3+ArcoDesign网页版webos后台模板
最新版研发vite7+vue3.5+pinia3+arco-design仿macos/windows风格网页版OS系统Vite-Vue3-WebOS。
429 11
|
2月前
|
JavaScript 安全
vue3使用ts传参教程
Vue 3结合TypeScript实现组件传参,提升类型安全与开发效率。涵盖Props、Emits、v-model双向绑定及useAttrs透传属性,建议明确声明类型,保障代码质量。
297 0
|
4月前
|
缓存 前端开发 大数据
虚拟列表在Vue3中的具体应用场景有哪些?
虚拟列表在 Vue3 中通过仅渲染可视区域内容,显著提升大数据列表性能,适用于 ERP 表格、聊天界面、社交媒体、阅读器、日历及树形结构等场景,结合 `vue-virtual-scroller` 等工具可实现高效滚动与交互体验。
480 1
|
4月前
|
缓存 JavaScript UED
除了循环引用,Vue3还有哪些常见的性能优化技巧?
除了循环引用,Vue3还有哪些常见的性能优化技巧?
288 0
|
5月前
|
JavaScript
vue3循环引用自已实现
当渲染大量数据列表时,使用虚拟列表只渲染可视区域的内容,显著减少 DOM 节点数量。
145 0
|
7月前
|
JavaScript API 容器
Vue 3 中的 nextTick 使用详解与实战案例
Vue 3 中的 nextTick 使用详解与实战案例 在 Vue 3 的日常开发中,我们经常需要在数据变化后等待 DOM 更新完成再执行某些操作。此时,nextTick 就成了一个不可或缺的工具。本文将介绍 nextTick 的基本用法,并通过三个实战案例,展示它在表单验证、弹窗动画、自动聚焦等场景中的实际应用。
638 17
|
8月前
|
JavaScript 前端开发 算法
Vue 3 和 Vue 2 的区别及优点
Vue 3 和 Vue 2 的区别及优点

热门文章

最新文章