Vue3(一)

发布于:2025-05-17 ⋅ 阅读:(29) ⋅ 点赞:(0)

一、安装nodejs

安装LTS版本:node-v22.15.1-win-x64.zip

二、创建一个 Vue 应用

参考:快速上手 | Vue.js

2.1、快速创建一个vue引用

1)在PC的E:\Wbstorm_Document\Vue3_Study路径下,执行命令:

npm create vue@latest

2)如果遇到镜像源报错,切换一下镜像源就可以解决了

npm config set registry https://registry.npmmirror.com

3)选择支持TS,输入回车即可

4)此时vue项目创建完毕,目录结构如下

2.2、vue脚手架目录结构介绍

env.d.ts:是一个 TypeScript 类型声明文件,专门为 Vite 构建工具和其相关特性提供类型定义。

index.html:项目的入口文件(一般会引入/src/main.ts)

/src/main.ts:注册App组件

tsconfig.app.json,tsconfig.json,tsconfig.node:TS的配置文件

vite.config.ts:整个项目的配置文件

vue3中是通过 createApp 函数创建一个应用实例。

2.3、最简单的Vue项目启动案例

1、main.ts文件
// 引入createApp用于创建应用
import {createApp} from 'vue'
// 引入App根组件
import App from './App.vue'

// 注册app
createApp(App).mount('#app')

2、App.vue文件
<template>
  <div>
    <h1>你好啊</h1>
  </div>
</template>

<script lang='ts'>
export default {
  name: 'App'  // 组件名称
}
</script>

<style scoped>

</style>

3、通过执行npm run dev启动实例即可

三、Setup(vue3的一个新的配置项,值是一个函数)

3.1、初步了解setup

<template>
<div>
  <h1>{{name}}</h1>
  <h1>{{age}}</h1>
  <h1>{{tel}}</h1>
  <button @click="changeName">修改名字</button>
  <button @click="changeAge">修改年龄</button>
  <button @click="showTel">查看电话</button>
</div>
</template>

<script lang='ts'>
export default {
  name: 'Person',

  // setup函数中的this是undefined(即:setup 拿不到vue2语法里面 data 的数据)
  setup(){
    // 定义变量-非响应式(数据,对应vue2的data)
    let name = "zhangsan" // let定义的变量是非响应式的,变量值被修改后,页面不会自动刷新
    let age = "18" // let定义的变量是非响应式的,变量值被修改后,页面不会自动刷新
    let tel = "123456789" // let定义的变量是非响应式的,变量值被修改后,页面不会自动刷新

    // 定义函数(方法,对应vue2的methods)
    function changeName(){
      name = "lisi"
    }
    function changeAge(){
      age+=1
    }
    function showTel(){
      alert(tel)
    }

    // 通过return 把【变量、方法】返回
    return {
      name,
      age,
      tel,
      changeName,
      changeAge,
      showTel,
    }
  },
  data(){ // vue2语法
    // data 里面可以使用this获取到setup定义的变量
    console.log(this.name)
  },
  methods:{ // vue2语法
  }
}
</script>

<style scoped>

</style>

3.2、setup语法糖,特点:无需return,用来实现各种组合式API,替代setup函数

3.2.1、这里会用到2个script标签,1个用来做【组件名称的配置】,1个用来【实现各种组合式API】,2个script标签缺一不可。

<template>
<div>
  <h1>{{name}}</h1>
  <h1>{{age}}</h1>
  <h1>{{tel}}</h1>
  <button @click="changeName">修改名字</button>
  <button @click="changeAge">修改年龄</button>
  <button @click="showTel">查看电话</button>
</div>
</template>

// 配置组件名称
<script lang='ts'>
export default {
  name: 'Person',
}
</script>


// 使用setup语法糖(无需return,用来实现各种组合式API)替代setup函数
<script lang='ts' setup>
// 定义变量
  let name = "zhangdan"
  let age = "18"
  let tel = "123456"

  // 定义函数
  function changeName(){
    name = "lisi"
  }
  function changeAge(){
    age+=1
  }
  function showTel(){
    alert(tel)
  }
</script>

<style scoped>

</style>

3.2.2、如果嫌script标签麻烦,想使用1个script标签,方法如下

1、安装插件:npm i vite-plugin-vue-setup-extend -D


2、在 vite.config.ts 配置文件内,引入该插件

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'

// 引用 vite-plugin-vue-setup-extend 插件,重命名为 VueSetupExtend
import VueSetupExtend from 'vite-plugin-vue-setup-extend'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueDevTools(),
    // 使用 VueSetupExtend 插件
    VueSetupExtend(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
})

3、在 script 标签中使用:name = "Person123" 即可重命名组件

<template>
<div>
  <h1>{{name}}</h1>
  <h1>{{age}}</h1>
  <h1>{{tel}}</h1>
  <button @click="changeName">修改名字</button>
  <button @click="changeAge">修改年龄</button>
  <button @click="showTel">查看电话</button>
</div>
</template>

// 使用setup语法糖(无需return,用来实现各种组合式API)替代setup函数
<script lang='ts' setup name = "Person123">  // 单独定义 name = "Person123" 就是组件名称
// 定义变量
  let name = "zhangdan"
  let age = "18"
  let tel = "123456"

  // 定义函数
  function changeName(){
    name = "lisi"
  }
  function changeAge(){
    age+=1
  }
  function showTel(){
    alert(tel)
  }
</script>

<style scoped>

</style>


网站公告

今日签到

点亮在社区的每一天
去签到