初始vue界面引入另一个vue界面并且get接口获取参数

主vue引用界面 :

<router-link to="/SelectViews" target="_blank">查看对方关卡数据</router-link>

& 引入的外部vue界面

<template>
  <div style="width: 100%;height: 100%;padding: 10px">
    <a-table :columns="columns" :data-source="data" class="components-table-demo-nested" :row-key="record => record.sort">
      <p slot="expandedRowRender" slot-scope="record" style="margin: 0">
        <a-table style="background-color: #FFFFFF" :columns="innerColumns" :data-source="record.gameBases"
                 :pagination="false" :row-key="gameBases => gameBases.gameSort">
          <a>Pause</a>
          <a>Stop</a>
        </a-table>
      </p>
    </a-table>
  </div>
</template>

<script>
const columns = [
  {title: '关卡', dataIndex: 'name', key: 'name'},
  {title: '答题人', dataIndex: 'founder', key: 'founder'},
];
const data = [];
const innerColumns = [
  {title: '游戏关卡', dataIndex: 'gameTitle', key: 'gameTitle'},
  {title: '平均花费时间', dataIndex: 'time', key: 'time'},
  {title: '通关次数', dataIndex: 'number', key: 'number'},
];

export default {
  name: "SelectViews",
  data() {
    return {
      data,
      columns,
      innerColumns,
      gameBases:[],
    };
    },
  mounted (){
    this.getRelativeData();
  },
  methods:{
    async getRelativeData(){
      getRelatives({}).then(res => {
        this.data = res.data.data;
      })
    }
},
}
</script>
<style scoped>
</style>

接口传参:
引入vue界面:

//引入
import {getRelatives} from '@/api/home'
//钩子函数
mounted (){
    this.getRelativeData();
  },
  //实现
 methods:{
    async getRelativeData(){
      getRelatives({}).then(res => {
        this.data = res.data.data;
      })
    }
},
//home.js中 获取亲属关卡数据
export function getRelatives(params){
  return request({
    url:'/api/playerLogs/getRelatives',
    method:'get',
    params,
  })
}
Vue.js中,当你想要在路由器初始化完成后显示某个Vue组件时,通常会结合路由守卫(Route Guards)和组件注册来实现。这里是一个简化的步骤说明: 1. **设置路由配置**: 在`router/index.js`文件中,创建一个新的路径并关联一个组件,例如: ```javascript import YourComponent from '@/components/YourComponent.vue'; export default new VueRouter({ routes: [ // 其他路由... { path: '/your-path', component: YourComponent, name: 'YourComponentRoute', // 可选,用于导航链接 }, ], }); ``` 2. **使用路由守卫**: - 使用`beforeEach`守卫可以在每次导航尝试前运行代码。在这里可以加载数据或验证权限,然后跳转到目标组件: ```javascript router.beforeEach((to, from, next) => { if (to.path === '/your-path') { // 如果是你要显示的页面 // 这里你可以做初始化操作,比如从服务器获取数据并填充到组件中 axios.get('api/your-data').then(response => { const data = response.data; next({ name: 'YourComponentRoute', params: { data } }); // 跳转并传递数据 }).catch(error => { console.error('Failed to fetch data:', error); next(); // 或者直接跳转,不做任何处理 }); } else { next(); // 如果不是该路径,正常继续导航 } }); ``` 3. **组件内部接收数据**: 在`YourComponent.vue`中,通过`props`接收传入的数据: ```html <template> <div> <h1>{{ yourData.title }}</h1> <!-- 根据你的数据结构展示内容 --> <p v-for="item in yourData.items" :key="item.id">{{ item.description }}</p> </div> </template> <script> export default { props: { yourData: { type: Object, required: true, }, }, }; </script> ``` 完成上述步骤后,当用户访问`/your-path`时,组件会在数据准备好后渲染。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值