Gulp Webpack生产模式导致iOS中的vue更新出现问题

时间:2019-07-12 14:44:02

标签: javascript vue.js webpack gulp babeljs

我正在创建一个包含产品集合的页面。当用户单击其中一种产品的图像时,该产品的详细版本会滑入其中。

我正在使用vue更新图像的src以及产品ID,具体取决于所单击的产品。我发现有时-仅在iOS手机上,并且仅当我在生产模式下运行webpack时-不会使用新的图像src属性或产品ID重新绘制HTML。控制台日志的确显示它正在更新我的变量,但是vue没有触发重绘。

我的产品网格设置如下:

<div v-for="product in products.items" class="column">
    <div v-on:click="open(product)" :class="[{'soldout' : (product.inventoryCount == 0)},'image']">
        <img :src="product.images[0].src" :alt="product.images[0].alt">
    </div>
</div>

我的详细部分如下:

<div v-for="image in productImages" :key="image.src" class="slide">
    <img :src="image.src" :alt="image.alt">
    <button class="button" v-on:click="addToCart" :data-id="productID">Add to Cart</button>
</div>

我更新vue变量的函数如下:

open(product) {
    this.productImages = product.images;
    this.productID = product.variantId;
}

我的运行Webpack的gulp任务如下:

.pipe(webpack({
    mode: `${mode}`,
    module: {
        rules: [
            {
                test: /\.vue$/,
                loader: 'vue-loader'
            },
            {
                test: /\.js$/,
                exclude: /(node_modules)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            }
        ]
    },
    plugins: [
        new VueLoaderPlugin()
    ]
}))

我使用不同的任务来在开发或生产模式之间切换。

据我所知,当我处于开发模式时,它没有问题,但是当我注意到该问题时,一旦切换到生产模式。如果我执行this.productImagesthis.productID的控制台日志,它们都将使用正确的信息进行更新,但是<img :src="image.src" :alt="image.alt"><button class="button" v-on:click="addToCart" :data-id="productID">Add to Cart</button>都不会更新。

奇怪的是,它似乎只发生在iPhone上,并且完全取决于刷新。有时我需要刷新几页才能看到它破裂,有时它非常一致。

似乎也因电话而异。我的同事电话几乎每次刷新都有问题,但是我的电话需要几次刷新才能看到。其他人有没有处理过这样的问题,或者不知道可能是什么原因造成的?

0 个答案:

没有答案