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

Vue 3 语法和特性

基本语法

<template><div><h1>{{ message }}</h1><button @click="updateMessage">Update Message</button></div>
</template><script>
export default {data() {return {message: 'Hello, Vue 3!'};},methods: {updateMessage() {this.message = 'Updated Message';}}
};
</script>

指令

v-bind 绑定属性

<img :src="imageUrl" alt="Image">

v-model 双向绑定

<input v-model="message">

v-for 循环

<ul><li v-for="(item, index) in items" :key="index">{{ item }}</li>
</ul>

v-if 和 v-else 条件渲染

<div v-if="isVisible">Visible</div>
<div v-else>Hidden</div>

v-show 条件显示

<p v-show="isVisible">This is shown/hidden</p>

生命周期钩子

<script>
import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue';export default {setup() {onBeforeMount(() => {console.log('Before Mount');});onMounted(() => {console.log('Mounted');});onBeforeUpdate(() => {console.log('Before Update');});onUpdated(() => {console.log('Updated');});onBeforeUnmount(() => {console.log('Before Unmount');});onUnmounted(() => {console.log('Unmounted');});}
};
</script>

组件

父子组件通信
子组件:

<template><button @click="sendToParent">Send to Parent</button>
</template><script>
import { defineComponent, ref } from 'vue';export default defineComponent({methods: {sendToParent() {this.$emit('custom-event', 'Data sent to parent');}}
});
</script>

父组件:

<template><child-component @custom-event="handleChildEvent"></child-component>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},methods: {handleChildEvent(data) {console.log('Received data from child:', data);}}
};
</script>

插槽(Slots)

在这里插入代<template><div><header><slot name="header">Default Header</slot></header><main><slot></slot></main><footer><slot name="footer">Default Footer</slot></footer></div>
</template>

使用插槽

<my-component><template #header><h1>Custom Header</h1></template><p>Main Content</p><template #footer><p>Custom Footer</p></template>
</my-component>

响应式数据

<script>
import { ref, reactive } from 'vue';export default {setup() {const message = ref('Hello, Vue 3!');const user = reactive({name: 'John',age: 25});return {message,user};}
};
</script>

路由(Vue Router)
定义路由

// router.js
import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';const routes = [{ path: '/', component: Home },{ path: '/about', component: () => import('./views/About.vue') }
];const router = createRouter({history: createWebHistory(),routes
});export default router;

使用路由

<template><router-view></router-view>
</template>

相关文章:

  • 在Next.js和React中搭建Cesium项目
  • 快递收发线上管理教程
  • Zookeeper 集群搭建过程中常见错误
  • Java设计模式之单例模式以及如何防止通过反射破坏单例模式
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(下)
  • XML简介 (EXtensible Markup Language)
  • mybatis-plus阻止全表更新与删除
  • Wavesurfer.js绘制波形图
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • 软考高级难度排行榜,哪个科目相对较容易呢?
  • web前端游戏项目-堆木头游戏【附源码】
  • apache poi_5.2.5 实现表格内某一段单元格的复制
  • 通过 Higress Wasm 插件 3 倍性能实现 Spring-cloud-gateway 功能
  • 【ARMv8M Cortex-M33 系列 1 -- SAU 介绍】
  • 3. BlazorSignalRApp 结合使用 ASP.NET Core SignalR 和 Blazor
  • 网络传输文件的问题
  • 2017-09-12 前端日报
  • express + mock 让前后台并行开发
  • Java编程基础24——递归练习
  • JAVA多线程机制解析-volatilesynchronized
  • LeetCode18.四数之和 JavaScript
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • PAT A1092
  • spring boot下thymeleaf全局静态变量配置
  • springMvc学习笔记(2)
  • 回顾2016
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 技术:超级实用的电脑小技巧
  • 前端技术周刊 2019-02-11 Serverless
  • 入门级的git使用指北
  • 译自由幺半群
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • # Apache SeaTunnel 究竟是什么?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #android不同版本废弃api,新api。
  • #Ubuntu(修改root信息)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (04)odoo视图操作
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (万字长文)Spring的核心知识尽揽其中
  • (学习日记)2024.01.19
  • (轉貼) UML中文FAQ (OO) (UML)
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .a文件和.so文件
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 使用反射注册事件
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • ;号自动换行
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @Mapper作用
  • @ModelAttribute使用详解
  • @SuppressLint(NewApi)和@TargetApi()的区别