热搜:前端 nest neovim nvim

vue3.0+vite+TypeScript 初体验

lxf2023-06-16 04:05:20

一、什么是 vite

Vite 是面向现代浏览器,基于原生模块系统 ESModule 实现了按需编译的 Web 开发构建工具。在生产环境下基于 Rollup 打包。

优点:

  • 快速冷启动服务器
  • 即时热模块更换(HMR)
  • 真正的按需编译

二、vite 创建项目

npm init vite-app <project-name>	// 创建项目 
cd <project-name>	// 进入新创建的项目
npm install		// 安装项目依赖
npm i -S typescript	vue-router@next axios	// 集成 TypeScript vue-router axios
npm i -D eslint eslint-plugin-vue	// 集成 eslint sass
npm i sass --save-dev	// 集成css预编译sass
npm run dev		// 运行当前项目

三、项目配置

3.1、配置 vite.config.js

vite.config.js的作用类似于之前 @vue-cli 项目中的 vue.config.js

import path from 'path'
module.exports = {
  // 导入别名
  alias: {
    '/@/': path.resolve(__dirname, './src'),
    '/@/': path.resolve(__dirname, './src/views'),
    '/@components/': path.resolve(__dirname, './src/components'),
    '/@utils/': path.resolve(__dirname, './src/utils'),
  },
  // 配置Dep优化行为
  optimizeDeps: {
    include: ["lodash"]
  },
  // 为开发服务器配置自定义代理规则。
  proxy: {
    '/api': {
      target: 'http://rap2.taobao.org:38080/app/mock/237355',
      changeOrigin: true,
      rewrite: (path: string) => path.replace(/^\/api/, '')
    }
  }
  // ... 
}

参考 GitHub

3.2、集成 Ant Design of Vue 2.0 UI框架

安装 Ant Design of Vue ( 该 UI 库支持 Vite & TypeScript 具体使用关注官方文档 )

npm install ant-design-vue --save ( yarn add ant-design-vue )

按需加载所需的 UI 组件

npm install -D babel-plugin-import
{
  "plugins": [
    ["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es", "style": "css" }] // `style: true` 会加载 less 文件
  ]
}

Ant Design of Vue 官网

3.3、配置 Router

在src目录下,新建 router 文件夹,并在文件夹内创建 index.js

import { RouteRecordRaw, createRouter, createWebHistory } from 'vue-router';

const routes: RouteRecordRaw[] = [
  {
    path: '/',
    name: 'Home',
    component: import('/@views/Home'),
  },
  {
    path: '/user',
    name: 'User',
    component: () => import('/@views/User'),
  },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

使用参考

3.4、新建 jsx 页面

在src目录下,新建 views 文件夹,并在文件夹内创建 Home.jsx User.jsx

** HomePage **

import { defineComponent } from 'vue';

export default defineComponent({
  name: 'Home',
  setup() {
    const msg='hello Home'
    return () => (
      <>
        <h1>Home</h1>
        <h1>{msg}</h1>
      </>
    );
  }
});

** UserPage **

import { defineComponent } from 'vue';

export default defineComponent({
  name: 'User',
  setup() {
    const msg='hello 用户中心'
    return () => (
      <>
        <h1>User</h1>
        <h1>{msg}</h1>
      </>
    );
  }
});

Vue 3.0 中使用 JSX

3.5、 main.ts

在 main 中引入 router 以及 ant-design-vue

import { createApp } from 'vue'
import App from './App'
import router from './router/index'
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';

createApp(App).use(router).use(Antd).mount('#app')
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!