首页 > 其他分享 >六种方式涵盖了Vue 3中定义和使用模板的主要方法

六种方式涵盖了Vue 3中定义和使用模板的主要方法

时间:2024-07-31 18:40:20浏览次数:13  
标签:Vue createApp 六种 app template return message 模板

1. 单文件组件 (SFC)

单文件组件(Single File Component, SFC)是Vue组件开发中最常见的方式。使用.vue文件来定义一个组件,包含<template><script><style>块。

示例

 1 <template>
 2   <div>
 3     <p>{{ message }}</p>
 4   </div>
 5 </template>
 6 
 7 <script>
 8 export default {
 9   data() {
10     return {
11       message: "Hello from SFC"
12     };
13   }
14 };
15 </script>
16 
17 <style>
18 p {
19   color: blue;
20 }
21 </style>

2. 使用模板字符串

在Vue组件的定义中,可以使用模板字符串来定义模板。

示例

 1 import { createApp } from 'vue';
 2 
 3 const app = createApp({
 4 data() {
 5 return {
 6 message: "Hello from template string"
 7 };
 8 },
 9 template: `
10 <div>
11 <p>{{ message }}</p>
12 </div>
13 `
14 });
15 
16 app.mount('#app');

3. 使用渲染函数

使用渲染函数可以完全使用JavaScript来定义模板,这在需要动态生成模板或更复杂的逻辑时非常有用。

示例

 1 import { createApp, h } from 'vue';
 2 
 3 const app = createApp({
 4   data() {
 5     return {
 6       message: "Hello from render function"
 7     };
 8   },
 9   render() {
10     return h('div', [
11       h('p', this.message)
12     ]);
13   }
14 });
15 
16 app.mount('#app');

4. 使用X-Templates

在某些情况下,可以使用X-Templates,在HTML文件中使用<script type="x-template">标签来定义模板。

示例

<script type="x-template" id="my-template">
  <div>
    <p>{{ message }}</p>
  </div>
</script>

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

<script>
import { createApp } from 'vue';

const app = createApp({
  data() {
    return {
      message: "Hello from x-template"
    };
  },
  template: '#my-template'
});

app.mount('#app');
</script>

5. 使用内联模板

在实例创建时直接在eltemplate选项中定义模板。

示例

<div id="app">
  <p>{{ message }}</p>
</div>

<script>
import { createApp } from 'vue';

const app = createApp({
  data() {
    return {
      message: "Hello from inline template"
    };
  }
});

app.mount('#app');
</script>

6. 使用动态组件

动态组件允许在运行时根据条件渲染不同的组件。

示例

 1 <div id="app">
 2   <component :is="currentComponent"></component>
 3 </div>
 4 
 5 <script>
 6 import { createApp } from 'vue';
 7 
 8 const ComponentA = {
 9   template: `<div>Component A</div>`
10 };
11 
12 const ComponentB = {
13   template: `<div>Component B</div>`
14 };
15 
16 const app = createApp({
17   data() {
18     return {
19       currentComponent: 'component-a'
20     };
21   },
22   components: {
23     'component-a': ComponentA,
24     'component-b': ComponentB
25   },
26   mounted() {
27     setTimeout(() => {
28       this.currentComponent = 'component-b';
29     }, 2000);
30   }
31 });
32 
33 app.mount('#app');
34 </script>

 

标签:Vue,createApp,六种,app,template,return,message,模板
From: https://www.cnblogs.com/basell/p/18283640

相关文章

  • 懂个锤子Vue 自定义指定、插槽:
    Vue自定义指定、插槽......
  • 计算机毕业设计django/flask导师双选指导系统python+vue
    通过分析企业对于本科生导师指导平台的需求,创建了一个计算机管理本科生导师指导平台的方案。文章介绍了本科生导师指导平台的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 Python版本:python3.7+前端:vue.js+elementui框架:django/flask都......
  • 微信小程序nodejs+vue+uniapp学生选课系统dmkas源码lw包安装
    系统分为学生和管理员,教师三个角色小程序端运行软件 微信开发者工具/hbuiderxuni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。基于微信小程序学生选课系统后台是本系统分为学生,教师,管理员三个角色,学生的主要功能是查看课程介......
  • 基于SpringBoot+Vue+uniapp的网上花店设计(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • vue中的网络请求
    参考网址:javascript-UncaughtTypeError:Cannotreadproperty'get'ofundefinedinVueJs-StackOverflowAjax、fetch、axios·要努力·看云(kancloud.cn)https://blog.csdn.net/m0_57836225/article/details/140580939https://www.jb51.net/article/273433.h......
  • Vue入门速成
     官网:快速上手|Vue.js(vuejs.org) 语法{{}}变量、表达式渲染v-htmlhtml模板,渲染htmlv-model绑定值(双向绑定)v-if判断v-bind简写:绑定属性v-on  简写@绑定事件v-for  循环动态class  style测试效果:<!DOCTYPEhtml><htmllang="en"><head>......
  • 加油,为Vue3提供一个可媲美Angular的ioc容器
    为什么要为Vue3提供ioc容器Vue3因其出色的响应式系统,以及便利的功能特性,完全胜任大型业务系统的开发。但是,我们不仅要能做到,而且要做得更好。大型业务系统的关键就是解耦合,从而减缓shi山代码的生长。而ioc容器是目前最好的解耦合工具。Angular从一开始就引入了ioc容器,因此在业务......
  • vue3屏幕适配
    通过两个插件来实现  postcss-pxtorem和  amfe-flexible 在main.js中导入import"amfe-flexible";在vite.config.js中配置css:{postcss:{plugins:[postcssPxtoRem({rootValue:192,//根据使用的ui组件?定义根元素大小?......
  • 在Vue3中创建动态主题切换功能
    随着现代Web开发的进步,用户体验变得愈发重要。在这方面,实现动态主题切换功能无疑是提高用户体验的有效方式。通过动态主题切换,用户可以根据自己的喜好选择明亮的主题或暗色主题,提供了更个性化、更舒适的使用体验。今天,我们将通过一个简洁的示例来展示,如何在Vue3中实现动态......
  • springboot vue寝室小卖部系统源码和答辩PPT论文
    本文首先实现了“一分钟”寝室小卖部系统设计与实现管理技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计......