Vue3项目从0-1项目(手把手教学)

简介: Vue3项目从0-1项目(手把手教学)

学完vue3之后一直感觉手痒痒想用vue3做项目,正好最近公司不是很忙,就以公司现开发项目为模板将公司项目升级3.0。


项目搭建


01. 搭建项目


vue create qitaijk3.0


e96ab97d36a34ad4be0ec4c05db53dce.png


选择自定义第三个


e625ae120af44754b362ea2e07b32651.png


选择125678(空格选中)回车确定


1dd2fa69584b4625bf059b7a56bfbda6.png


选择3

99b2c3ea6b6941cd9fb62de0b727905c.png


选择n

3e40abc56b1944eda83d09defb52ffc6.png


选择less

98d8b813b1304c08b38b6cfc78d514a8.png


选择第三个 Standard config

a33b55644e2f4c1d9ccbdd37d9fca887.png


两个都选中

9e86f7df5467468d8264157c23721eaf.png


选择第一个

f89df3608e644d8e8d28256def3014c4.png


选择n

b0e6bcf5efed45f88fa28cc9abd1b032.png


到这里搭建就已经完成了


以上用户可根据自己喜好进行配置。新手建议跟随作者进行配置


完成之后可以先尝试运行项目


也可以使用npm run serve 我这边使用的是yarn

32e64ea94c32491db18f8d84c4063b57.png


dc005cbe32974a389b513b46bf31ef2a.png



Vuex配置


完成了上面配置 接下里我们就进入到vuex的配置中


首先因为vuex的数据我们需要做持久化,所以首先下载vuex持久化插件

npm i vuex-persistedstate
yarn add vuex-persistedstate


老规矩,还是分模块


在src/store 文件夹下新建 modules 文件,在 modules 下新建 user.js 和 database.js


user.js

// 用户模块
export default {
  namespaced: true,
  state () {
    return {
      setUser: {
      }
    }
  },
  mutations: {
    setUser (state, setUser) {
      state.setUser = setUser
    }
  }
}


22f123b374b04bffb3a100be84f57b08.png


database.js

// 分类模块
export default {
  namespaced: true,
  state () {
    return {
      database: []
    }
  }
}


b29a823e09364296b77d5b7f0d075f84.png


store/index.js


然后接下来在store的首页引入持久化插件进行使用

import { createStore } from 'vuex'
// 引入持久化插件
import createPersistedstate from 'vuex-persistedstate'
import user from './modules/user'
import database from './modules/database'
export default createStore({
  modules: {
    user,
    database
  },
  plugins: [
    createPersistedstate({
      key: 'haihaina', // 存储的名字
      paths: ['user', 'database'] // 持久化的模块
    })
  ]
})


92795b2e44f14569b404d31d844486ec.png


axios


接下来就到了封装axios


首先第一步还是需要下载axios

npm i axios
yarn add axios


新建 src/utils/request.js 模块


// 1. 创建一个新的axios实例

// 2. 响应拦截器:2.1. 剥离无效数据  2.2. 处理token失效

// 3. 导出一个函数,调用当前的axsio实例发请求,返回值promise


// 1. 创建一个新的axios实例
import axios from 'axios'
// 导出基准地址
export const baseURL = '公司项目的地址'
const instance = axios.create({
  // axios 的一些配置,baseURL  timeout
  baseURL,
  timeout: 5000
})
instance.interceptors.request.use(config => {
  return config
}, err => {
  return Promise.reject(err)
})
// 2. 响应拦截器:2.1. 剥离无效数据  2.2. 处理token失效
instance.interceptors.response.use(
  // res => res.data  取出data数据,将来调用接口的时候直接拿到的就是后台的数据
  res => res.data,
  err => {
    return Promise.reject(err)
  })
// 3. 导出一个函数,调用当前的axsio实例发请求,返回值promise
// 请求工具函数
export default (url, method, submitData) => {
  // 负责发请求:请求地址,请求方式,提交的数据
  return instance({
    url,
    method,
    // 1. 如果是get请求  需要使用params来传递submitData   ?a=10&c=10
    // 2. 如果不是get请求  需要使用data来传递submitData   请求体传参
    [method.toLowerCase() === 'get' ? 'params' : 'data']: submitData
  })
}


4f5eee5c051d4f14b58d2ea8b185057b.png


到这里我们Vue3的项目就已经基本上完成啦,下面就可以按照自己公司项目需求进行项目的路由的设计,如果这篇文章对您有所帮助,欢迎点赞收藏。


相关文章
|
19天前
|
缓存 JavaScript UED
Vue3中v-model在处理自定义组件双向数据绑定时有哪些注意事项?
在使用`v-model`处理自定义组件双向数据绑定时,要仔细考虑各种因素,确保数据的准确传递和更新,同时提供良好的用户体验和代码可维护性。通过合理的设计和注意事项的遵循,能够更好地发挥`v-model`的优势,实现高效的双向数据绑定效果。
121 64
|
19天前
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
100 60
|
1月前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
19天前
|
前端开发 JavaScript 测试技术
Vue3中v-model在处理自定义组件双向数据绑定时,如何避免循环引用?
Web 组件化是一种有效的开发方法,可以提高项目的质量、效率和可维护性。在实际项目中,要结合项目的具体情况,合理应用 Web 组件化的理念和技术,实现项目的成功实施和交付。通过不断地探索和实践,将 Web 组件化的优势充分发挥出来,为前端开发领域的发展做出贡献。
27 8
|
18天前
|
存储 JavaScript 数据管理
除了provide/inject,Vue3中还有哪些方式可以避免v-model的循环引用?
需要注意的是,在实际开发中,应根据具体的项目需求和组件结构来选择合适的方式来避免`v-model`的循环引用。同时,要综合考虑代码的可读性、可维护性和性能等因素,以确保系统的稳定和高效运行。
20 1
|
18天前
|
JavaScript
Vue3中使用provide/inject来避免v-model的循环引用
`provide`和`inject`是 Vue 3 中非常有用的特性,在处理一些复杂的组件间通信问题时,可以提供一种灵活的解决方案。通过合理使用它们,可以帮助我们更好地避免`v-model`的循环引用问题,提高代码的质量和可维护性。
30 1
|
19天前
|
JavaScript
在 Vue 3 中,如何使用 v-model 来处理自定义组件的双向数据绑定?
需要注意的是,在实际开发中,根据具体的业务需求和组件设计,可能需要对上述步骤进行适当的调整和优化,以确保双向数据绑定的正确性和稳定性。同时,深入理解 Vue 3 的响应式机制和组件通信原理,将有助于更好地运用 `v-model` 实现自定义组件的双向数据绑定。
|
1月前
|
存储 JavaScript 前端开发
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
【10月更文挑战第21天】 vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
|
28天前
|
JavaScript 索引
Vue 3.x 版本中双向数据绑定的底层实现有哪些变化
从Vue 2.x的`Object.defineProperty`到Vue 3.x的`Proxy`,实现了更高效的数据劫持与响应式处理。`Proxy`不仅能够代理整个对象,动态响应属性的增删,还优化了嵌套对象的处理和依赖追踪,减少了不必要的视图更新,提升了性能。同时,Vue 3.x对数组的响应式处理也更加灵活,简化了开发流程。
|
1月前
|
JavaScript 前端开发 开发者
Vue 3中的Proxy
【10月更文挑战第23天】Vue 3中的`Proxy`为响应式系统带来了更强大、更灵活的功能,解决了Vue 2中响应式系统的一些局限性,同时在性能方面也有一定的提升,为开发者提供了更好的开发体验和性能保障。
71 7