• 技术文章 >web前端 >Vue.js

    vue如何实现局部刷新?(代码示例)

    青灯夜游青灯夜游2020-10-30 17:52:51转载1147

    我们都知道,vue的组件化是他最强大的核心所在,路由也是特别可爱的一部分,但是路由适合一些大型的组件,看url路径的时候会出现变化,但是有时候我们想要一些小的局部小刷新,这个时候就需要用到它的动态组件了。

    Vue 自身保留的 <component> 元素,可以将组件动态绑定到 is 特性上,从而很方便的实现动态组件切换

    代码如下:slotDome.vue:

    <template>
      <div>
        <slot></slot>
        <slot name="wise"></slot>
     
        <el-radio-group v-modal="tabView">
          <el-radio-button label="simple1" @click="toSim(1)">
            <button>页面一</button></el-radio-button>
          <el-radio-button label="simple2" @click="toSim(2)"><button>页面二</button>
          </el-radio-button>
        </el-radio-group>
        <keep-alive>
          <component :is="tabView"></component>
        </keep-alive>
      </div>
    </template>
    <style rel="stylesheet/stylus">
      el-radio-button
        &:hover
          cursor pointer
    </style>
    <script>
      import simple1 from "./simple/simple1.vue";
      import simple2 from "./simple/simple2.vue";
      export default{
        data(){
          return {
            tabView: "simple1"
          }
        },
        methods: {
          toSim(index){
            this.tabView = `simple${index}`;
          }
        },
        components: {
          simple1,
          simple2
        }
      }
    </script>

    simple1.vue:

    <template>
      <div>
        这是页面一
        <input type="text">
      </div>
    </template>

    simple2.vue:

    <template>
      <div>
        这是页面二
        <input type="text">
      </div>
    </template>

    上例中,当 tabView 的值改变,<component> 就会渲染对应的组件,和路由的效果十分类似,但是地址栏并没有发生改变

    但这样一来,每次切换组件都会重新渲染,无法保留组件上的数据。这时可以使用 keep-alive 将组件保留在内存中,避免重新渲染

    页面效果如下:

    1.png

    相关推荐:

    2020年前端vue面试题大汇总(附答案)

    vue教程推荐:2020最新的5个vue.js视频教程精选

    更多编程相关知识,请访问:编程入门!!

    以上就是vue如何实现局部刷新?(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:vue 局部刷新
    上一篇:分析一下Vue.use的源码 下一篇:详解vue中的数据初始化(initState)
    大前端线上培训班

    相关文章推荐

    • vue组件间如何进行通信?方法介绍• 浅谈Vue.js中双向绑定的原理及实现方法• 详解vue.js中如何处理事件• 使用React、Vue和Single SPA创建微型前端• 实现带有进度条的Vue延迟加载

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网