vue学习day four

vue学习day four

网络请求跨域问题解决方案

同源策略:js采取的同源策略是浏览器的一项安全策略,浏览器只允许js代码请求和当前所在服务器域名,端口,协议相同的数据接口上的数据,这就是同源策略

目前主流的跨域解决方案

  1. 后台解决:cors
  2. 前台解决:proxy

在vue.config.js的module.exports里面写

devServer:{
	proxy:{
		'/api':{
			target:'http://iwenwiki.com',
			changeOrigin:true
		}
	}
}

在解决完跨域的问题之后,一定要记得重启服务器

vue引入路由配置 (路由:管理页面之间的关系 例如页面之间的跳转)

在Vue中,我们可以通过vue-router路由管理页面之间的关系

vue-router 是Vue.js的官方路由。它与Vue.js核心深度集成,让用Vue.js构建单页应用变得轻而易举

单页应用:项目只包含一个页面

在Vue中引入路由

  1. 安装路由

    npm install --save vue-router
    
  2. 配置独立的路由文件(src–>router–>index.js)

    //index.js
    import { createRouter, createWebHashHistory } from 'vue-router'
    import HomeView from '../views/HomeView.vue'
    
    const routes = [//创建一个数组的对象 数组中间存储页面的配置 每一个配置都是对象的形式
    	{
    		path:'/',//路径 
    		name:'home',
    		component:HomeView//写对应的组件
    	},
    	{
    		path:'/about',
    		name:'about',
    		//这是异步加载方式 如果页面没有被加载 这个组件就不会被引入
    		component:()=> import('../views/AboutView.vue')
    	}
    ]
    
    const router = createRouter({
    	history:createWebHashHistory(),//代表访问方式
    	routes
    })
    
    export default router;
    
    1. 引入路由到项目(写完之后要在main.js中实现引入)
import router from "./router"

create(App).use(router).mount('#app')
  1. 在App.vue中显示路由
<template>
	//路由的显示入口
	<router-link to="/">首页</router-link>//5.指定路由跳转
	<router-link to="/about">关于</router-link>//指定路由跳转
	<router-view></router-view>//4.指定路由显示入口
</template>

路由传递参数

页面跳转过程中,是可以携带参数的,这也是很常见的业务 例如:在一个列表项中,点击进入查看每个列表项的详情

第一步:在路由配置中指定参数的key

{//index.js文件中修改
	path:"/list/:name",
	name:"list",
	component:()=> import("../views/ListView.vue")
}

第二步:在跳转过程中携带参数

//还需要在NewsView.vue中写出来对应的value
<li><router-link to="/newsdetails/百度">百度新闻</router-link></li>
<li><router-link to="/newsdetails/网易">网易新闻</router-link></li>
<li><router-link to="/newsdetails/头条">头条新闻</router-link></li>

第三步:在详情页面读取路由携带的参数

<p>{{ $route.params.name }}城市旅游景区详情</p>

嵌套路由配置:非常常见的需求

第一步:创建子路由要加载显示的页面

第二步:在路由配置文件中添加子路由配置

const routes = [
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/about',
    name: 'about',
    component: () => import('../views/AboutView.vue'),
    children:[
      {
        //二级导航的路径不需要加/
        path:"us",
        component:()=>import("../views/AboutSUb/AboutUs.vue")
      },
      {
        path:"info",
        component:()=> import("../views/AboutSUb/AboutInfo.vue")
      }
    ]
  }
]

第三步:指定子路由显示位置====(AboutView.vue组件中引入———父组件)

第四步:添加子路由跳转链接

<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>

第五步:重定向配置:假如有很多子页面,那当我们进入父页面时,应该默认进入第一个页面

写在index.js中 并且在父组件的括号中写
redirect:"/about/us"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值