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的比较示意图,这样可以更直观的理解他们的思路和代码逻辑,纯属个人观点,仅供参考。

相关推荐
老前端的功夫2 小时前
抛弃 `!important`,让 CSS 优先级变大
前端·javascript·css·npm·node.js
熊文豪2 小时前
Tomcat+cpolar 让 Java Web 应用随时随地可访问
java·前端·tomcat·cpolar
衫水2 小时前
如何在离线情况下部署项目(前端VUE + 后端Python)
前端·vue.js·python
南棱笑笑生2 小时前
20260123让天启AIO-3576Q38开发板在天启Buildroot下适配摄像头模块8ms1m【预览】
java·前端·数据库·rockchip
Sylvia33.2 小时前
如何获取足球数据统计数据API
java·前端·python·websocket·数据挖掘
沛沛老爹2 小时前
从Web到AI:Agent Skills安全架构实战——权限控制与数据保护的Java+Vue全栈方案
java·开发语言·前端·人工智能·llm·安全架构·rag
小飞大王6662 小时前
使用nodejs接入ai服务并使用sse技术处理流式输出实现打字机效果
前端·javascript·人工智能
极客小云2 小时前
【React + TypeScript 实现高性能多列多选组件】
前端·react.js·typescript
bin91532 小时前
(文后附完整代码)html+css+javascript 弹球射击游戏项目分析
前端·javascript·css·游戏·html·前端开发