1.Vue-CLI3.x设置反向代理
目的: 解决跨域问题
原理: 伪造“同源”的http请求,然后将此“同源”请求发送至反向代理服务器,由反向代理服务器去请求真正的URL,这样就绕过同源策略,解决了直接请求真正的URL而导致的跨域问题
步骤:
- 设置
Vue.config.js文件中的proxyTable
module.exports = {
devServer: {
proxyTable: {
'/api': 'http://m.maoyan.com',
changeOrigin: true
}
}
}
- 发起
axios请求
axios.get('/api/infoList').then(res => {
console.log(res.data)
})
2.组件名的定义和使用
问题: 开发项目时,我创建了一个名为MyForm.vue的单文件组件,并在App.vue中注册该组件。然而当我使用<myform></myform>标签时,组件却并未生效。查阅官方文档后终于发现问题所在。
过程:
根据官方文档,定义组件名的方式分两种:短横线分隔命名(kehab-case)和首字母大写命名(PascalCase)。
如果使用短横线分隔命名定义组件,引用时必须使用短横线分隔形式,例:
// 注册一个名为my-component的组件
Vue.component('my-component-name', {})
// 引入my-component组件
<my-component></my-component>
如果使用首字母大写命名定义组件,则引用时可以使用两种命名方法,例:
// 注册一个名为MyComponent的组件
Vue.component('MyComponentName', {})
// 引入MyComponent组件的两种方式:
<my-component></my-component> // 第一种
<MyComponent></MyComponent> // 第二种
【注意】直接在DOM中(即非template/render模式下)使用组件时,只能使用短横线分隔命名使用组件。
结果: 我将<myform></myform>标签改为<my-form></my-form>,组件使用问题到此解决。
3.$router和$route的区别
-
$router: VueRouter的实例对象,包含了所有的路由,包含了许多关键的对象和属性。
常用方法:this.\$router.push()用于路由跳转 -
$route: 局部的路由对象,每一个路由都会有一个$route对象,可以获取该路由的name,path,params,query等属性。
常用方法:this.\$route.params用于获取路由的动态片段this.\$route.query用于获取路由的查询字符串部分