一般我们写移动端项目时会遇到这种需求动态顶部,当点击底部的关于页面,顶部的位置也要显示与之对应,今天为大家介绍一种简单的方法! 使用插槽分两种 1只需要改动一个值只需要用到匿名插槽 2组要改动多处最好用到具名插槽
创建一个头部组件Head.vue,暂与About同级目录,图片右侧为插槽部分,右侧使用插槽的位置
操作About页面 1导入
import Head from "./Head";引用
components: { Head, },使用
<Head>关于</Head> <!-- About --> <template> <div class="about"> <!-- <Head>关于</Head> --> <Head> <div @click="fn" slot="fhs"><返回</div> <div slot="fhz">关于</div> </Head> <ul> <li v-for="(v, i) of num" :key="i"> {{ i + 1 }}   <span>This is an about page</span> </li> </ul> </div> </template> <script> import Head from "./Head"; export default { //import引入的组件需要注入到对象中才能使用 components: { Head, }, data() { //这里存放数据 return { num: 50, }; }, //监听属性 类似于data概念 computed: {}, //监控data中的数据变化 watch: {}, //方法集合 methods: { fn() { this.$router.go(-1);//参数0刷新,1前进,-1后退 }, }, }; </script> <style scoped> span { font-size: 0.5rem; } </style>操作Head.vue附带样式
<!-- head --> <template> <div> <div class="head"> <div class="heada"> <slot name="fhs"></slot> </div> <div class="headb"> <slot name="fhz"></slot> </div> <div class="headc"> <slot name="fhx"></slot> </div> </div> </div> </template> <script> export default { name: "Head", //import引入的组件需要注入到对象中才能使用 components: {}, data() { //这里存放数据 return {}; }, }; </script> <style > .head { height: 1.2rem; line-height: 1.2rem; width: 100%; background-color: #26a2ff; color: #fff; text-align: center; position: fixed; top: 0; display: flex; justify-content: space-between; } .heada{ flex: 1; text-align: left; font-size: 0.5rem; } .headb{ flex: 1; font-size: 0.5rem; } .headc{ flex: 1; font-size: 0.5rem; } </style>操作About页面 1导入
import Head from "./Head";引用
components: { Head, },使用
<Head> <div @click="fn" slot="fhs"><返回</div> <div slot="fhz">关于</div> </Head>