vue组件刷新 局部刷新----记录

1.使用this.$forceUpdate()强制重新渲染

如果要在组件内部中进行强制刷新,则可以调用this.$forceUpdate()强制重新渲染组件,从而达到更新目的。

<template>
<button @click="reload()">刷新当前组件</button>
</template>
<script>
export default {
    name: 'comp',
    methods: {
        reload() {
            this.$forceUpdate()
        }
    }
}
</script>

2.使用v-if指令
如果是刷新某个子组件,则可以通过v-if指令实现。我们知道,当v-if的值发生变化时,组件都会被重新渲染一遍。因此,利用v-if指令的特性,可以达到强制刷新组件的目的。

 

<template>
    <comp v-if="update"></comp>
    <button @click="reload()">刷新comp组件</button>
</template>
<script>
import comp from '@/views/comp.vue'
export default {
    name: 'parentComp',
    data() {
        return {
            update: true
        }
    },
    methods: {
        reload() {
            // 移除组件
            this.update = false
            // 在组件移除后,重新渲染组件
            // this.$nextTick可实现在DOM 状态更新后,执行传入的方法。
            this.$nextTick(() => {
                this.update = true
            })
        }
    }
}
</script>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 组件的实时刷新有多种方式,以下是其中的两种: 1. 使用 Vue.js 的开发环境 Vue.js 的开发环境提供了实时刷新的功能,每当你修改组件的代码时,它会自动重新加载页面以显示最新的更改。你可以通过在命令行中运行 `npm run serve` 来启动开发服务器,然后在浏览器中打开 `http://localhost:8080` 即可开始开发和实时刷新。 2. 使用 Vue Loader 插件 Vue Loader 是一个 webpack 插件,可以将 Vue 组件编译为 JavaScript 模块,并将模板、样式和代码合并在一起。使用 Vue Loader 可以实现组件级别的热重载,即在修改组件代码时,只有该组件会被重新加载,而不是整个页面。你可以在 webpack 配置文件中添加 Vue Loader,并在开发服务器中启用热重载功能,如下所示: ```js // webpack.config.js const VueLoaderPlugin = require('vue-loader/lib/plugin') module.exports = { entry: './src/main.js', module: { rules: [ { test: /\.vue$/, loader: 'vue-loader' } ] }, plugins: [ new VueLoaderPlugin() ] } ``` ```js // webpack.dev.config.js const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const { merge } = require('webpack-merge') const baseConfig = require('./webpack.config') module.exports = merge(baseConfig, { mode: 'development', devtool: 'inline-source-map', devServer: { hot: true, host: 'localhost', port: 8080, open: true, historyApiFallback: true }, plugins: [ new webpack.HotModuleReplacementPlugin(), new HtmlWebpackPlugin({ template: './public/index.html' }) ] }) ``` 这样,在运行开发服务器时,就可以通过 Vue Loader 插件实现组件的实时刷新了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值