91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用vite+vue3.0+ts+element-plus搭建項目的教程

發布時間:2021-06-24 10:50:03 來源:億速云 閱讀:307 作者:chen 欄目:開發技術

這篇文章主要介紹“用vite+vue3.0+ts+element-plus搭建項目的教程”,在日常操作中,相信很多人在用vite+vue3.0+ts+element-plus搭建項目的教程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”用vite+vue3.0+ts+element-plus搭建項目的教程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

vite 出了 2.x 版本,抱著學一學的心態決定出個簡單的項目,結合 element-plus,以及將會成為每位前端必會的 typescript,實現了如下內容。

vite是一個由原生 ESM 驅動的 Web 開發構建工具。在開發環境下基于瀏覽器原生 ES imports 開發,在生產環境下基于 Rollup 打包。

vite 作用

  • 快速的冷啟動:不需要等待打包操作;

  • 即時的熱模塊更新:替換性能和模塊數量的解耦讓更新飛起;

  • 真正的按需編譯:不再等待整個應用編譯完成,這是一個巨大的改變。

使用的環境

  • node v12.19.0

  • @vue/cli 4.5.8

搭建項目

npm init vite-app <project-name>
cd <project-name>
npm install
npm run dev


yarn create vite-app <project-name>
cd <project-name>
yarn
yarn dev

配置

vite.config.ts

vite.config.ts 相當于 @vue-cli 項目中的 vue.config.js

import path from "path";

const pathResolve = (pathStr: string) => {
  return path.resolve(__dirname, pathStr);
}

const config = {
  base: './',//在生產中服務時的基本公共路徑。@default '/'
  alias: {
    '/@/': pathResolve('./src'),
  },
  outDir: 'vite-init',//構建輸出將放在其中。會在構建之前刪除舊目錄。@default 'dist'
  minify: 'esbuild',//構建時的壓縮方式
  hostname: 'localhost',//本地啟動的服務地址
  port: '8800',//服務端口號
  open: false,//啟動服務時是否在瀏覽器打開
  https: false,//是否開啟https
  ssr: false,//是否服務端渲染
  optimizeDeps: {// 引入第三方的配置
    include: ['axios']
  },
  // proxy: {//代理配置
  //   '/api': {
  //     target: 'http://xx.xx.xx.xx:xxxx',
  //     changeOrigin: true,
  //     ws: true,
  //     rewrite: (path: string) => { path.replace(/^\/api/, '') }
  //   }
  // }
}
module.exports = config;

tsconfig.json

{
  "compilerOptions": {
    "target": "ES5",//指定ECMAScript的目標版本:'ES3'(默認),'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020',或'ESNEXT'。
    "module": "commonjs",//指定模塊代碼生成:'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020',或'ESNext'。
    "strict": true,//是否啟用所有嚴格的類型檢查選項。
    "baseUrl":"./",//用于解析非絕對模塊名稱的基本目錄。
    "paths": {
      "/@/*": ["./src/*"]
    },  
    "noImplicitAny": true, //對于隱含有'any'類型的表達式和聲明引發錯誤。
    "esModuleInterop": true, //通過為所有導入創建名稱空間對象,實現CommonJS和ES模塊之間的互操作性。意味著“allowSyntheticDefaultImports”。
    "experimentalDecorators": true, //支持對ES7裝飾器的實驗性支持。
    "skipLibCheck": true, //跳過聲明文件的類型檢查。
    "forceConsistentCasingInFileNames": true //禁止對同一文件使用大小寫不一致的引用。
  }
}

App.vue

修改app.vue

<template>
  <img alt="Vue logo" src="./assets/logo.png" />
  <router-view />
</template>

<script>
export default {
  name: 'App',
  setup() {

  }
}
</script>

Views

在 src 下新建 views文件夾,并在文件夾內創建 index.vue

<template>
  <HelloWorld :msg="msg"></HelloWorld>
</template>

<script lang="ts">
import HelloWorld from "/@/views/HelloWorld.vue";
import { defineComponent } from "vue";
export default defineComponent({
  name: "Home",
  components: { HelloWorld },
  setup() {
    return {
      msg: "hello World",
    };
  },
});
</script>

PS:在引入.vue文件時一定要帶上后綴名,否則會報找不到文件

在views文件夾內創建 HelloWorld.vue

<template>
  <h2>{{ msg }}</h2>
  <button @click="realTime.count++">count is: {{ realTime.count }}</button>
  <button @click="handleclick">點擊跳轉其它路由</button>
  <p>Edit <code>components/HelloWorld.vue</code> to test hot module replacement.</p>
</template>

<script>
import { defineComponent, reactive } from "vue";
import { useRouter } from 'vue-router'
export default defineComponent({
  name: 'Index',
  props: { msg: { type: String, default: '歡迎來到vue3' } },
  setup(props) {
    const router = useRouter();
    let realTime = reactive({ count: 0 });

    function handleclick() {
      router.push({ path: '/other' })
    }
    return {
      msg: props.msg,
      realTime,
      handleclick
    }
  }
})
</script>

router

在 src 下新建 router 文件夾,并在文件夾內創建 index.ts

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

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    component: () => import("/@/views/index.vue")
  },
]

export default createRouter({
  history: createWebHistory(),
  routes
})

main.ts

把原本的main.js改為main.ts,修改后別忘記把index.html里面也改為main.ts

import { createApp } from 'vue'
import router from './router/index'
import App from './App.vue'
import ElementPlus from 'element-plus'

import 'element-plus/lib/theme-chalk/index.css'
import './reset.css'

const app = createApp(App);
app.use(ElementPlus);
app.use(router);
app.mount('#app');

細心的同學這時可能已經發現:在 ts 文件中引入 .vue 文件時出現以下報錯,但是不影響代碼正常運行

用vite+vue3.0+ts+element-plus搭建項目的教程

報錯原因:typescript 只能理解 .ts 文件,無法理解 .vue文件

解決方法:在項目根目錄或 src 文件夾下創建一個后綴為 .d.ts 的文件,并寫入以下內容:

declare module '*.vue' { }
declare module '*.js'
declare module '*.json';
declare module '*.svg'
declare module '*.png'
declare module '*.jpg'
declare module '*.jpeg'
declare module '*.gif'
declare module '*.bmp'
declare module '*.tiff'

至此項目搭建完成,可以愉快的寫代碼了。

到此,關于“用vite+vue3.0+ts+element-plus搭建項目的教程”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尉氏县| 宜兴市| 克山县| 衡东县| 苏尼特右旗| 许昌市| 堆龙德庆县| 龙海市| 揭西县| 咸宁市| 绥芬河市| 福建省| 五原县| 墨江| 广水市| 来安县| 宣威市| 福州市| 田东县| 甘德县| 张家界市| 遵化市| 义马市| 台东县| 盐源县| 昌黎县| 朝阳市| 长汀县| 桃源县| 新蔡县| 浦北县| 阳山县| 屏山县| 五指山市| 宝坻区| 五大连池市| 赤峰市| 温宿县| 通江县| 武鸣县| 三河市|