Vue3魔法手册 作者 张天禹 02

3,Vue3核心语法

1, App.vue 根组件

复制代码
<template>
	<!--html 结构-->
</template>
<script>
	// JS 或 TS
</script>

<style>
	<!--样式-->
</style>

2, main.ts

复制代码
// 引入 createApp 用于创建应用
import {createApp} from 'vue'
// 引入 App根组件
import App from './App.vue'
// 调用createApp()方法创建应用并放在id为app的容器里面
createApp(App).mount('#app')
一个简单的效果代码如下
复制代码
1, src/components/Person.vue
<template>
    <div class="person">
        <h2>姓名:{{ name }}</h2>
        <h2>年龄:{{ age }}</h2>
        <h2>爱好:{{ hobby }}</h2>
        <h2>地址:{{ address }}</h2>
        <button @click="changeName">修改名字</button>
        <button @click="changeAge">修改年龄</button>
        <button @click="showTel">查看联系方式</button>
    </div>
</template>

<script lang="ts">
    export default {
        name: "Person",
        data() {
            return {
                name: "张三",
                age: 18,
                hobby: "篮球",
                address: "北京市朝阳区",
                tel: "18017927192"
            }
        },
        methods: {
            changeName() {
                this.name = "zhang-san"
            },
            changeAge() {
                this.age += 1;
            },
            showTel() {
                alert(this.tel);
            }
        }
    }
</script>

<style scoped>
    .person {
        background-color: skyblue;
        box-shadow: 0 0 10px;
        border-radius: 10px;
        padding: 20px;
    }
    button {
        margin: 0 5px;
    }
</style>





2, src/main.ts
// 引入 createApp 用于创建应用
import {createApp} from 'vue'
// 引入 App根组件
import App from './App.vue'
// 调用createApp()方法创建应用并放在id为app的容器里面
createApp(App).mount('#app')





3, src/App.vue
<script lang="ts">
  import Preson from './components/Preson.vue';
  export default{
    // 组件名称
    name: 'App',
    // 注册组件
    components: {
      Preson,
    }
  }
</script>

<template>
  <div class="app">
    <h1>您好啊!</h1>
    <!-- 使用组件: -->
    <Preson></Preson>
  </div>
</template>

<style scoped>
  .app {
    background-color: #ddd;
    box-shadow: 0 0 10px;
    border-radius: 10px;
    padding: 20px;
  }
</style>







4, index.html
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vite App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>

一个简单的效果图如下

点击查看联系方式

Options API 与 Components API

vue2每增加一个功能,都要去相应的选项添加
绿色功能的函数包含着:数据,方法,计算属性,监视,包含了很多很多的东西,此时他就集中了,以后要修改绿色功能,你只需要找到该函数就可以修改了,不用在满世界去寻找 data,methods,computed等

以上是vue2与vue3的比较示意图,这样可以更直观的理解他们的思路和代码逻辑,纯属个人观点,仅供参考。

相关推荐
我命由我123454 分钟前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
key_3_feng19 分钟前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
LaughingZhu1 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
Lank_M1 小时前
抠图结果缩放后边缘发脏,该怪的不是插值
前端
jerrywus1 小时前
Skill、MCP、Workflow、Rules、Memory 有什么区别?拿几次真实开发任务讲清楚
前端·agent·claude
补码缩写1 小时前
canvas 与 sharp 缩放透明图:默认预乘,非预乘得拆通道
前端
静默回滚1 小时前
抠图 PNG 缩小再放大,边缘又糊又白是两件事
前端
用户11977079480731 小时前
GitHub 电商开源项目分享:用 sharp 批量出饰品主图,试了裁剪、细节图和色彩配置文件三个坑
前端·node.js
deli0072 小时前
地图定位为什么偏了 500 米?GPS 与火星坐标实测
前端
TK泰妞2 小时前
节日促销前,TikTok 商品视频应该提前准备什么?
前端·人工智能·节日