尚品汇解析01

在浏览器运行:npm run serve

样式为less:npm install --save less less-loader

vue文件中<template>只能有一个根元素即<div>...</div>

安装vue-router插件:npm install --save vue-router

报错:vue和vue-router需要安装兼容的版本        

npm install vue-router@3.1.3 --save-dev
路由组件(pages、views)

==》配置路由(router)

import Vue from 'vue'

import VueRouter from 'vue-router'

Vue.use(VueRouter)

export default new VueRouter({

    routes:[

        {

           path:'',

           compoent:

        },

    ]

重定向

{

            path:'*',

            redirect:'/home'

        },

==》在main.js中引入、注册

import router from '@/router'

new Vue({

  render: h => h(App),

  router

}).$mount('#app')

==》在app.vue中使用

路由注册出口    

<router-vue></router-vue>

路由元信息

{

            path:'/home',

            component:Home,

            meta:{showFooter:true}

        },

路由传递参数:params和query参数

传递字符串

this.$router.push('/search/'+this.msg) 

模板字符串

this.$router.push('/search/${this.msg}') 

对象

报错:Can't resolve 'core-js/fn/symbol'        不知道怎么回事被莫名其妙加上了core-js/fn/symbol删掉就可以了

      this.$router.push({name:"search",params:{msg:this.msg}})

path:'/search/:msg?'        注解::msg是绑定msg,?是正则表达式 

当你的Vue项目在当前的路由下企图再次导航到当前路由时就会出现NavigationDuplicated的问题

自己在调用路由跳转函数的时候自己去捕捉处理一下promise就行了。 

          像这样      router.push('/location').catch(err => {})

           或者直接把push在router原型上二次封装一下,

路由拆分组件,该组件注册为全局组件:

组件模块==》在main.js中注册为全局组件

import TypeNav from '@/pages/Home/TypeNav'

Vue.component(TypeNav.name,TypeNav)

axios二次封装:创建一个axios实例requests,对其的请求拦截器和响应拦截器配置

import axios from 'axios'

// 创建一个实例

const requests = axios.create({

    baseURl:'/api',

    timeout:5000

})

// 请求拦截器

requests.interceptors.request.use(function (config) {

    return config;

  }, function (error) {

    return Promise.reject(error);

  });

// 响应拦截器

requests.interceptors.response.use(function (response) {

    return response.data;

  }, function (error) {

    return Promise.reject(error);

  });

API接口统一管理

import requests from './request'

import request from './request'

export const reqCategoryList = ()=>{

    return requests({url:'/product/getBaseCategoryList',method:"get"})

}

跨域问题:

浏览器向服务器发送请求,存在跨域(协议、端口号、域名不同)问题,可以使用代理的方法,寻找中间服务器,服务器向服务器发送请求不存在跨域问题

vue.config.js配置:

devServer:{

    proxy: {

      "/api": {

        target: "http://localhost:3000",

        pathRewrite: {"^/api" : ""}

      }

    }

  }

进度条nprogress

npm install --save nprogress

在api的request.js文档中,请求拦截器是在发请求之前(nProgress.start()),响应拦截器是在收到响应之后(nProgress.done()) 

npm install加不加save

npm install xxx --save
会将该依赖存入到package.json 里的dependcies里
npm install xxx
则不会将该依赖存入到package.json 里的dependcies里
--save-dev

vuex状态管理

在vue2中,要用vuex的3版本

使用:store/index.js

==》mian.js注册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值