测试开发进阶(十九)
欢迎关注我的公众号:「测试游记」
嵌套路由
场景:父页面打开,再打开子页面
借鉴官方示例:
https://github.com/vuejs/vue-router/blob/dev/examples/nested-routes/app.js
1 | const router = new VueRouter({ |
修改/src/router/index.js
1 | { |
在 /src/components/Login.vue
的template
中添加以下内容
1 | <p>=====================</p> |
输入:http://localhost:8080/login
会显示两个输入内容
这是因为子路由中有一个空
的默认路由:{path: '', component: Login}
,所以父路由加载一次,子路由加载一次
输入:http://localhost:8080/projects_list2
会显示登录部分和项目部分
但是它使用的是{path: '/projects_list2', component: ProjectsList}
输入:http://localhost:8080/login/projects_list2
也会显示一样的内容
但它使用的是{path: 'projects_list2', component: ProjectsList}
两者区别是有无/
axios
- 非常流行的请求库
- vue发起异步请求的标配
安装方式:
1 | cnpm install axios -S |
测试接口:https://dog.ceo/api/breeds/image/random
修改/src/components/HelloWorld.vue
1 | <script> |
/src/components/HelloWorld.vue
1 | <template> |
代码封装
新建/src/api/api.js
1 | import axios from 'axios' |
修改HelloWorld.vue
1 | import {dogs} from '../api/api.js' |
slot插槽
默认情况下,在子组件开始标签和结束标签中间添加的内容会忽略
在/src/components/greeting.vue
的template
中增加以下内容
1 | <hello-world> |
如果需要展示出来需要在/src/components/HelloWorld.vue
中添加:
<slot></slot>
也就是插槽
如果在slot
中写入内容,那外部不使用会使用默认的:
<slot><p>喵喵喵</p></slot>
1 | # greeting.vue |
1 | # greeting.vue |
命名插槽
1 | # greeting.vue |
插槽作用域
1 | # greeting.vue |