Vue3--一个简单效果

教程

  • 编码规范

    • TypeScript+组合式API+setup语法糖

  • 内容

    • 核心:ref、reactive、computed、watch、生命周期...

    • 常用:hooks、自定义ref、路由、pinia、mitt...

    • 面试:组件通信、响应式相关API...

Vue3简介

  • 3.3.4版本

创建Vue3工程

  • 基于vue-cli创建(webpack)

  • 基于vite创建(推荐)

    • 官网https://vitejs.cn

    • 构建对比图

    • 配置环境

    • 讲解文件夹文件

编写App组件

  • 讲解src文件

    • main.ts:盆、根、创建并摆放

  • 代码实现main.ts

    // 引入createApp用于创建应用
    import {createApp} from 'vue'
    // 引入App根组件
    import App from './App.vue'
    
    createApp(App).mount('#app')
  • 代码实现App.vue

    <template>
        <!-- html -->
        <div class="app">
            <h1>你好</h1>
        </div>
    </template>
    
    <script lang="ts">
        // JS或TS
        export default {  //默认暴露
            name:'App' //组件名
        }
    </script>
    
    <style>
        /* 样式 */
        .app {
            background-color: #ddd;
            box-shadow: 0 0 10px;
            border-radius: 10px;
            padding: 20px;
        }
    </style>
  • 总结:

    • Vite项目中,index.html是项目的入口文件,在项目最外层

    • 加载index.html后,Vite解析<script type="module" src="xxx">指向的JavaScript

    • Vue3中是通过createApp函数创建一个应用实例

一个简单的效果

  • 建一个“备份”

  • src下新建“components”(写个有功能的)

  • 在compoments下新建Person.vue

  • 代码实现Person.vue

    <template>
        <div class="person">
            <h2>姓名:{{name}}</h2>
            <h2>姓名:{{age}}</h2>
            <button>修改名字</button>
            <button @click="showTel">查看联系方式</button>
        </div>
    </template>
    
    <script lang="ts">
        export default {
            name:'Person'
            data() {
                return {
                    name:'张三',
                    age:18,
                    tel:'13888888888'
                }
            } ,
            methods:{
                changeName() {
                    this.name='zhang-san'
                },
                changAge() {
                    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>
  • 代码实现App.vue

    <template>
        <!-- html -->
        <div class="app">
            <h1>你好</h1>
            <Person/>
        </div>
    </template>
    
    <script lang="ts">
        // JS或TS
        import Person from './components/Person.vue'
        export default {  //默认暴露
            name:'App' ,//组件名
            components:{Person}//注册组件
        }
    </script>
    
    <style>
        /* 样式 */
        .app {
            background-color: #ddd;
            box-shadow: 0 0 10px;
            border-radius: 10px;
            padding: 20px;
        }
    </style>


Vue3--一个简单效果
http://localhost:8090//archives/vue3
作者
江敏婕
发布于
2024年11月11日
许可协议