vue3 + vite + elmentui

项目建成后,最苦逼的是需要去配置各种文件,没头绪了好几天,也是和同事一起慢慢搞起,

一个 vite.config.js ,话不多说,直接上代码

const path = require('path')
// vite.config.js # or vite.config.ts
console.log(path.resolve(__dirname, './src'))

module.exports = {
  alias: {
    // 键必须以斜线开始和结束
    '/@/': path.resolve(__dirname, './src')
  },
// 配置本地 host
  hostname: 'www.baidu.com',
  /**
   * 在生产中服务时的基本公共路径。
   * @default '/'
   */
  base: './',
  /**
   * 与“根”相关的目录,构建输出将放在其中。如果目录存在,它将在构建之前被删除。
   * @default 'dist'
   */
  outDir: 'dist',
  port: 3000,
  // 是否自动在浏览器打开
  open: true,
  // 是否开启 https
  https: false,
  // 服务端渲染
  ssr: false,
  // 引入第三方的配置
  //   optimizeDeps: {
  //     include: ["moment", "echarts", "axios", "mockjs"],
  //   },
  proxy: {
    // 如果是 /api 打头,则访问地址如下
    '/api': {
      target: 'https://baidu.com/',
      changeOrigin: true,
      rewrite: path => path.replace(/^/api/, '')
    }
  },
  optimizeDeps: {
    // element-plus中文库
    include: ['element-plus/lib/locale/lang/zh-cn', 'axios']
  }
}

现在项目启动,vue3 相对于vue2的最直接区别就在于,vue3直接运用 setup(){}函数,

<script>
import { ref, onMounted, watch } from 'vue'
import { useStore } from 'vuex'
import Aos from 'aos'
import { getMsg, getHpStyleByWebsiteId } from '/@/api/index.js'
import '/@/utils/rem.js'
export default {
  setup() {
    const store = useStore()
    //获取网站信息
    const getinfo = async () => {
      const data = {
        url: '',
        type: 'all'
        // url: window.location.hostname,
        // type: 'www'
      }
      const websiteId = await getMsg(data).then(res => {
        // console.log(res, res.data.data.id, 'wwwwdddd')
        if (res.data.message === 'success' && res.data.data) {
          const data = {
            
          }
          //将基础信息存入vuex 和 localStorage
          store.commit('SET_HOMEDATA', data)
          localStorage.setItem('indexData', JSON.stringify(data))
          
        }
      })
    }

    // cnzz
    watch('$route', () => {
      setTimeout(() => {
        // 避免首次获取不到window._czc
        if (window._czc) {
          const location = window.location
          const contentUrl = location.pathname + location.hash
          const refererUrl = '/'
          // 用于发送某个URL的PV统计请求,
          window._czc.push(['_setAutoPageview', false])
          window._czc.push(['_trackPageview', contentUrl, refererUrl])
        }
      }, 300)
    })

    onMounted(() => {
      getinfo()

      Aos.init({
        duration: 500,
        easing: 'ease',
        delay: 0,
        offset: 100
      })
    })
    return {}
  }
}
</script>

js 中引入 watch onMounted 等方法,直接去用,相当于vue2中的watch mounted ,return出去的是在 template 中要用到的方法或参数,

 像现在 const 的参数,和vue2中的data中的参数一样

 在return 出去

原文地址:https://www.cnblogs.com/mawz/p/14975580.html