首页 > 其他分享 >【Vue】从零搭建一个Vue项目

【Vue】从零搭建一个Vue项目

时间:2022-10-30 17:00:29浏览次数:64  
标签:Vue 项目 vue import router Home 路由 搭建



一、项目创建

1、打开命令行窗口Cd /d进入想要创建项目的位置,输入vue create 项目名

【Vue】从零搭建一个Vue项目_Axios

【Vue】从零搭建一个Vue项目_Router_02编辑

2、选择Vue2

【Vue】从零搭建一个Vue项目_Router_03

【Vue】从零搭建一个Vue项目_Store_04编辑

3、运行该项目

【Vue】从零搭建一个Vue项目_Vue_05

【Vue】从零搭建一个Vue项目_Store_06编辑

4、创建成功

【Vue】从零搭建一个Vue项目_Router_07

【Vue】从零搭建一个Vue项目_Router_08编辑 在浏览器中输入以上网址:localhost:8080,来到一下界面,说明成功

​编辑

1、安装路由(vue2 只能安装3版本的vue-router)

【Vue】从零搭建一个Vue项目_Axios_09

【Vue】从零搭建一个Vue项目_Vue_10编辑

看一下这个文件有vue-router代表安装成功

【Vue】从零搭建一个Vue项目_Vue_11

【Vue】从零搭建一个Vue项目_Vue_12编辑

2、配置路由

(1、创建router文件夹

【Vue】从零搭建一个Vue项目_Router_13

【Vue】从零搭建一个Vue项目_Vuex_14编辑

 (2、创建index.js,配置路由

重定向的解释:当网址下(如localhost:8080/xxx)匹配不到相应的路由的时候,则跳转到重定向所设置的路径

路由组件与非路由组件的归类:compoents文件夹一般放置非路由组件
pages文件夹一般放置路由组件

路由还有很多没写:(

        1、路由守卫:解决在某些条件下不能跳转到其他路由

        2、二级路由

        3、路由组件在某些地方不展示,可以增加一个属性

        4、路由的传参和跳转

meta:可以配置一些参数,作用其实是让一些非路由组件展示与不展示

//引入Vue
import Vue from "vue";
//引入Vue-router
import VueRouter from "vue-router";
//使用VueRouter
Vue.use(VueRouter);
//引入路由组件
import Home from "@/components/Home"
import Search from "@/components/Search"
//对外暴露一个Vue实例
export default new VueRouter({
//配置路由
routes:[
{
path:'/Home',
component:Home,
name:"Home",
meta:{isshow:true}
},
{
path:'/Search',
component:Search,
name:"Search",
meta:{isshow:false}
},
//重定向
{
path:'*',
redirect:"/Home"
}
]
})

【Vue】从零搭建一个Vue项目_Router_15

在main.js出口文件中注册路由

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false
//引入路由
import router from './router'
new Vue({
render: h => h(App),
//配置路由,KV一致,省略V
//这里使用router之后,组件身上都有$router,$route属性
//$router最常用来跳转push跳转 $route最常用来获取参数
router
}).$mount('#app')

【Vue】从零搭建一个Vue项目_Vue_16

Vue中配置一个出口 <router-viwe><router-view/>

<template>
<div id="app">
<Header/>
<!-- 路由的出口 -->
<router-view></router-view>
<Footer/>
</div>
</template>

<script>
import Header from './components/Header'
import Footer from "@/components/Footer"
export default {
name: 'App',
components: {
Header,
Footer
}
}
</script>

<style>

</style>

【Vue】从零搭建一个Vue项目_Vue_17

 三、API接口配置

1、安装axios axios帮助文档 配置的时候可以跟着来,不用死记硬背

【Vue】从零搭建一个Vue项目_Store_18

【Vue】从零搭建一个Vue项目_Axios_19编辑 这里面有代表安装成功

【Vue】从零搭建一个Vue项目_Vue_20

【Vue】从零搭建一个Vue项目_Vue_21编辑

2、axios的二次封装

(1、创建api文件夹,创建resquest.js文件(其实该文件就是axios)

【Vue】从零搭建一个Vue项目_Vue_22

【Vue】从零搭建一个Vue项目_Vue_23编辑

 (2、axios的二次封装 看着文档来

//引用axios
import axios from "axios";
const requests = axios.create({
// baseURL的作用 例如我有一个接口的网址为www.baidu/api/love
// 如果很多接口都是www.baidu/api/xxx
//我可以省略/api,因为axios会自动帮你添上,这就是baseUrl的作用
baseURL: '/api',
//请求超时的时间为5s
timeout: 5000,

});
//请求拦截器,发请求之前可以做一些事情
requests.interceptors.request((config)=>{
//config配置对象,有一个属性 请求头headers
return config;
})

//相应拦截器
requests.interceptors.response((res)=>{
// 服务器成功返回
//简化返回的数据,只返回data
return res.data;
},(error)=>{
//失败
//静态函数Promise.reject返回一个被拒绝的Promise对象。通过使用 Error的实例 获取错误原因(reason)对调试和选择性错误 捕捉很有帮助。
Promise.reject(new Error("faile"));
})

【Vue】从零搭建一个Vue项目_Axios_24

在API文件下创建一index.js文件,用来统一管理接口请求 

//结构统一管理
import requests from "./request"

//method 有get 和 post两种方式
// 有参数的需要些模板字符串``
export const reqGetSomeInfo = (p)=>requests({url:`"/baidu/${p}"`,method:"get"});
// 无参数直接写
export const reqGetSomeInfo2 = ()=>requests({url:"/baidu",method:"get"});
//需要传对象的可以用data属性
export const reqGetSomeInfo3 = (p,data)=>requests({url:`"/baidu"/${p}`,data:data,method:"get"});

【Vue】从零搭建一个Vue项目_Router_25

3、跨域问题

跨域:如果多次请求协议、域名、端口号有不同的地方,称之为跨域

传统的解决方式:JSONP、CROS、代理

代理:

在vue.config.js里添加一下代码

//配置代理跨域
devServer: {
// /api的作用是:当地址中,出现api时,浏览器会自动向target请求数据
//注意配置这个,需要重新启动一下项目
proxy: {
"/api": {
target: "http://39.98.123.211",
},
},
},

【Vue】从零搭建一个Vue项目_Vuex_26

【Vue】从零搭建一个Vue项目_Vuex_27

【Vue】从零搭建一个Vue项目_Router_28编辑

四、Vuex

​以前写的Vuex详解 不赘叙了​

【Vue】从零搭建一个Vue项目_Vue_29

【Vue】从零搭建一个Vue项目_Vuex_30编辑

1、安装vuex

【Vue】从零搭建一个Vue项目_Router_31

【Vue】从零搭建一个Vue项目_Vue_32编辑 同样这个json文件里面有,就是安装成功了

【Vue】从零搭建一个Vue项目_Vue_33

【Vue】从零搭建一个Vue项目_Vue_34编辑

 2、配置仓库

创建store文件夹,是为大仓库。Home文件夹是Home小仓库

【Vue】从零搭建一个Vue项目_Axios_35

【Vue】从零搭建一个Vue项目_Store_36编辑

Home仓库(在此处调用api接口)

import { reqGetSomeInfo } from "@/api"
const state = {
someInfo:[]//此处是空对象 还是 空数组要看接口返回的值
}
const mutations = {
GETSUM(state,someInfo)
{
state.someInfo = someInfo;
}
}
const actions = {
//params是携带的参数
async getsum({commit},params)
{
let result = await reqGetSomeInfo;
if(result.code == 200)//请求成功会返回code = 200
{
commit("GETSUM",result.data)
}
}
}
//getter是为了简化操作
const getters = {}

export default{
state,
actions,
getters,
mutations
}

【Vue】从零搭建一个Vue项目_Axios_37

小仓库需要在大仓库注册 Store.js

import Vue from "vue";
import Vuex from "vuex"
Vue.use(Vuex);
import Home from "./Home"
export default new Vuex.Store({
modules:{
Home,//Home小仓库在大仓库里注册
}
})

【Vue】从零搭建一个Vue项目_Axios_38

入口文件引入store main.js

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false
//引入路由
import router from './router'
//引入仓库
import store from './store'
new Vue({
render: h => h(App),
//配置路由,KV一致,省略V
//这里使用router之后,组件身上都有$router,$route属性
//$router最常用来跳转push跳转 $route最常用来获取参数
router,
//这里使用store后,组件身上都有了$store属性
store,
}).$mount('#app')

【Vue】从零搭建一个Vue项目_Vue_39

整个流程走一遍,发现vue也没有那么难,真的把这四个组件搞明白,会很轻松。

前路漫漫,切不可放松。加油,努力


标签:Vue,项目,vue,import,router,Home,路由,搭建
From: https://blog.51cto.com/u_15807146/5807543

相关文章

  • 【Vue】Vuex详解
     【前言】本博客系统的讲诉了Vuex的安装、搭建。以及Actions、Mutations、State、Getters的使用,为什么使用mapState、mapGetters以及一些细节的解释Vuex原理讲解 编辑Acti......
  • Django(一) | 创建Django项目并启动
    聪明在于勤奋,天才在于积累——华罗庚查看Django版本MicrosoftWindows[版本10.0.19044.2130](c)MicrosoftCorporation。保留所有权利。D:\myPython>python-m......
  • vue-cil搭建vue
    搭建vue-cil脚手架需要node.js环境去官网下载node.js  win系统cmdnode-v查看当前版本npminstallcnpm-g或者npminstall--registry=https://registry.npm.taoba......
  • 在gitee上给别人的项目贡献自己的代码
    在网络上搜索自己感兴趣的项目时,在gitee上找到一个合心意的项目,想要直接下载ZIP,但是需要登录,于是注册了gitee的账号。研究项目的过程中,修改了一些bug以及完善了一些小功能,......
  • vue echarts graph 关系图
    最近项目需要,用到了echart的grpah关系图,研究了下,大概就画个简单的吧html:<divid="app"><divid="main"class="echarts":style="{......
  • vue学习笔记
    今日内容概要计算属性监听属性组件介绍和定义父子通信之父传子父子通信之子传父ref属性动态组件插槽vue-cli今日内容详细计算属性我们可以通过计算属性c......
  • vue3路由的使用
    一、路由的概要1.1、什么是路由?路由就是一组映射关系,根据不同的url地址展示不同的内容或页面(key-value);key为路径,value可能是function或component 路......
  • java spring项目中使用设计模式和函数式编程的思想去除业务逻辑中的if else判断
    如果你开发项目时对项目之后的发展很清晰但仍陷入了为什么要用设计模式替换ifelse的疑问时就说明你项目的体量不需要用设计模式答案只在问题提出之后有意义策略和状......
  • git 查看项目成员代码提交行数和次数统计
    在实际开发中,常常会想查看自己对于某个项目的贡献,管理者会查看项目下各成员的贡献,就需要使用到git的命令进行代码提交的统计。查看个人提交的代码行数统计gitlog--au......
  • 项目中加锁的一些真实应用场景
    使用Java进行web开发的项目中,时常会使用到加锁的场景。加锁的操作主要是为了防止某一个操作出现重复的情况导致数据混乱;或者是为了避免在进行某些复杂业务操作的时候,......