头部文件有一个bug

news/2024/7/9 23:46:23 标签: vue

1、HeaderSearch.vue

<template>
    <div class="headerSearch">
        <input type="search" v-model.trim="keyword">
        <button @click="search">搜索</button>
    </div>
</template>

<script>
export default {
    name: 'HeaderSearch',
    data() {
        return {
            keyword: ''
        };
    },
    methods: {
        search() {
            if(this.keyword !=this.$route.query.wd)
              this.$route.push({path: '/search', query: {wd: this.keyword}})
        }
    },
}

2、HeaderCart.vue

<template>
  <div class="headerCart">
    <a href="javascript:;" @click.prevent="handleCart">
      <span>购物车 {{ cartItemsCount }} </span>
    </a>
  </div>
</template>

<script>
import { mapGetters } from '@vuex'

export default({
  name: 'HeaderCart',
  components: {
  },
  computed: {
    ...mapGetters('cart', {
      cartItemsCount: 'itemsCount'
    })
  },
  methods: {
    handleCart() {
      this.$router.push("/cart")
    }
  }
})
</script>

3、Header

<template>
  <div class="header">
    <img src="@/assets/images/logo.png">
    <HeaderSearch />
    <HeaderCart/>
    <span v-if="!user">你好,请<router-link to="/login">登录</router-link>  免费<router-link to="/register">注册</router-link></span>
    <span v-else>欢迎您,{{ user.username }}<a href="javascript:;" @click="logout">退出登录</a></span>
  </div>
</template>

<script>
import HeaderSearch from "./HeaderSearch";
import HeaderCart from "./HeaderCart";
import { mapState, mapMutations } from 'vuex'

export default {
  name: "Header",

  components: {
    HeaderSearch,
    HeaderCart
  },

  computed: {
    // user模块带有命名空间
    ...mapState('user', [
      // 将this.user 映射为 this.$store.state.user.user
      'user'
    ])
  },

  methods: {
    logout(){
      this.deleteUser();
    },
    // user模块带有命名空间
    ...mapMutations('user', [
      // 将this.deleteUser 映射为 this.$store.commit('user/deleteUser')
      'deleteUser'
    ])
  },
};
</script>
<style scoped>
.header {
    width: 100%;
    /*position: relative;*/
}
.header img{
    width: 200px;
    height: 60px;
    margin: auto;  
}
.header span{
  margin-left: 20px;
}
.header a{
  text-decoration: none;
  color: red;

}
</style>

http://www.niftyadmin.cn/n/957408.html

相关文章

torch.gather()通俗理解

torch.gather(input, dim, index, outNone) → Tensor input (Tensor) – 源张量 dim (int) – 索引的轴 index (LongTensor) – 聚合元素的下标 out (Tensor, optional) – 目标张量 >>> t torch.Tensor([[1,2],[3,4]]) 1 2 3 4 >>> torch.gather(t,1,…

setup放在哪里试可不可以运行

<template><div>{{ count }} {{ object.foo }}</div> </template><script>import { ref, reactive } from vueexport default {setup() {const count ref(0)const object reactive({ foo: bar })// 暴露到template中return {count,object}}} &…

t-SNE实践——sklearn教程

声明&#xff1a; 参考sklearn官方文档 How to Use t-SNE Effectively.&#xff08;翻译&#xff1a;如何高效地使用t-SNE&#xff09; t-SNE t-SNE是一种集降维与可视化于一体的技术&#xff0c;它是基于SNE可视化的改进&#xff0c;解决了SNE在可视化后样本分布拥挤、边界…

疑难点。。

setup ref等 key watch

强化学习论文研读(三)——Human-level control through deep reinforcement learning

提出nature-DQN算法的论文&#xff0c;主要改进&#xff1a; 使用bata-buffer的方式随机储存状态回放&#xff0c;消除数据的相关性&#xff0c;平滑数据的分布。使用定期&#xff08;T1&#xff09;更新Q的方式&#xff0c;使减少与当前目标的相关性&#xff0c;也就是所谓的…

utils文件夹utils.js文件是干什么用的

utils文件夹utils.js文件是干什么用的

python保存列表、字典数据到本地文件

1、保存列表为.txt文件 #1/list写入txtipTable [158.59.194.213, 18.9.14.13, 58.59.14.21] fileObject open(sampleList.txt, w) for ip in ipTable: fileObject.write(ip) fileObject.write(\n) fileObject.close() 2、字典保存 #2/dict写入json import jsondic…

这个bug是怎么回事BookIntroduction

Failed to compile with 1 error 下午5:07:53This relative module was not found:* ./BookIntroduction in ./node_modules/cache-loader/dist/cjs.…