Vue 中keep-alive组件将会被缓存

动态包裹哈
<keep-alive>
  <component :is="comName"></component>
</keep-alive>

子组件

<template>
      <div>
        <h2>我是登录组件</h2>
      </div>
</template>

<template>
      <div>
        <h2>我是注册组件</h2>
      </div>
</template>
---------------
<template>
  <div class="mett-page">
    <h2>遇见问题</h2>
    <!-- 推荐这种写法-->
    <ul class="tab-tilte">
      <li
        :key="index"
        v-for="(title,index) in tabTitle"
        @click="getclcik(index)"
        :class="{active:cur==index}"
      >{{title}}</li>
    </ul>

    <div class="tab-content">
      <div v-for="(m,index) in tabMain" :key="index" v-show="cur==index">{{m}}</div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tabTitle: ["标题一", "标题二", "标题三", "标题四"],
      tabMain: ["内容一", "内容二", "内容三", "内容四"],
      cur: 0 //默认选中第一个tab
    };
  },
  methods: {
    getclcik(value) {
      this.cur = value;
    }
  }
};
</script>

<style scoped>
.mett-page .tab-tilte {
  display: flex;
  list-style: none;
}
.mett-page .tab-tilte > li {
  width: 50px;
  height: 40px;
}
</style>

引入组件

<template>
  <!-- is属相的使用 -->
  <div class="box">
    <div class="link-a" @click="comName='login'">登录</div>
    <div class="link-a" @click="comName='resgister'">注册</div>

    <div class="link-a" @click="comName='mett'">遇见问题</div>
    <keep-alive>
      <component :is="comName"></component>
    </keep-alive>
  </div>
</template>

<script>
import login from "../../components/logincom/login";
import resgister from "../../components/logincom/register";
import mett from "../../components/logincom/mett";

export default {
  data() {
    return {
      comName: "login"
    };
  },
  components: {
    resgister,
    login,
    mett
  }
};

</script>

<style  scoped>
.box {
  display: flex;
}
.link-a {
  width: 80px;
  height: 40px;
  text-align: center;
  line-height: 40px;
  background: pink;
  margin-left: 20px;
}
</style>

原文地址:https://www.cnblogs.com/IwishIcould/p/12117030.html

时间: 2024-09-29 19:04:51

Vue 中keep-alive组件将会被缓存的相关文章

vue中修改子组件样式

一.全局修改 1.在App.vue中设置,引入公共样式及个别页面的特殊样式common.css: 例如:<link rel="stylesheet" type="text/css" href="static/assets/css/common.css"> 下边的写法没用过参考链接中给的 <a href="http://home.cnblogs.com/u/134870/" target="_blan

vue中使用keepAlive组件缓存遇到的坑

项目开发中在用户由分类页category进入detail需保存用户状态,查阅了Vue官网后,发现vue2.0提供了一个keep-alive组件. 上一篇讲了keep-alive的基本用法,现在说说遇到的坑. 先说项目中的配置 在App.vue中的设置 在router中增加配置meta 上面这个设置后发现问题了,从category进入detail页后,状态被保存了,返回的时候保存了用户状态,达到了预期效果 但问题在于但从category返回到index后,再由index进入category时依然显

Vue中,父组件向子组件传值

1:在src/components/child/文件夹下,创建一个名为:child.vue的子组件 2:在父组件中,设置好需要传递的数据 3:在App.vue中引入并注册子组件 4:通过v-bind属性绑定并赋值给子组件 5:子组件通过 props 接收父组件传递过的数据 6:查看 7:总结: 子组件在props中创建一个属性,用以接收父组件传过来的值 父组件中注册子组件 在子组件标签中添加子组件props中创建的属性 把需要传给子组件的值赋给该属性 原文地址:https://www.cnblo

在vue中让某个组件重新渲染的笨方法

在vue中,推崇的是数据驱动也就是数据更新进而使组件得以重新渲染:在某些情况下,我们想要在数据不改变的情况下,重新渲染组件:我遇到的一个情况是:同一个页面,两个tab页分别为tab1和tab2,公用了一个组件,在tab1页修改了数据,再去tab2页查看的时候,发现tab1修改的数据会在tab2中的组件中显示,为了能够使得公用的组件重新渲染,可以使用v-if指令进行合理处理. 原文地址:https://www.cnblogs.com/llcdxh/p/9357661.html

vue中封装svg-icon组件并使用

vue中使用svg图片有很多便捷方式,在这里记录一下模仿参考的过程,仅做一标记,方便后续回来查找 附上参考地址:https://juejin.im/post/59bb864b5188257e7a427c09 1.使用vue-cli3.0脚手架运行搭建一个项目,地址 截图如下: 2.components文件下新建SvgIcon组件 文件中的代码: 原文地址:https://www.cnblogs.com/lhjfly/p/10756650.html

vue中的全局组件和局部组件的应用

1全局组件 vue框架: https://www.vue-js.com/?tab=all 组件树 solt 内置分发组件 应用见局部组件 2局部组件 2.1局部组件的使用:生子 - 挂子 - 用子 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> &l

vue中8种组件通信方式

一.props / $emit 下面通过一个例子说明父组件如何向子组件传递数据:在子组件article.vue中如何获取父组件section.vue中的数据articles:['红楼梦', '西游记','三国演义'] // section父组件 <template> <div class="section"> <com-article :articles="articleList"></com-article> <

vue中修改第三方组件中的样式

项目在中修改第三方组件样式,但由于 scoped 属性的样式隔离,可能需要去除 scoped 或是另起一个 style .这些做法都会带来副作用(组件样式污染.不够优雅),样式穿透在css预处理器中使用才生效 我们可以使用 >>> 或 /deep/ 解决这一问题 <style scoped> 外层 >>> .el-checkbox { display: block; font-size: 26px; .el-checkbox__label { font-si

vue中怎么实现组件通信--自我总结

1.父组件到子组件 父组件 -- > 子组件,使用的props属性传递机制. 在父组件调用子组件时,设置属性 Vue.component('child', { // 声明 props props: ['message'], // 就像 data 一样,prop 可以用在模板内 // 同样也可以在 vm 实例中像 "this.message" 这样使用 template: '<span>{{ message }}</span>' }) 设置message属性

vuex 实现vue中多个组件之间数据同步以及数据共享。

前言 在一些项目中有很多数据状态之间要实现数据共享状态共享,例如购物车的数据.用户的登录状态等等.vue父元素是可以通过props向子元素传递参数,子元素也可以通用smit向父元素传递参数.但是像购物车这种在项目中多个位置的引用时就会变得很麻烦.例如项目中使用了三个购物车的组件,那么当其中一个组件的值发生改变时,就要通过自身告诉父组件我的值发生改变了,然后父组件在通知其他两个购物车组件值发生改变了,需要进行同步,这样就会变得很麻烦.而vue-v就可以帮助我们解决这个繁琐的问题.