You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Laravel Blade模板中展示Vue组件并实现订单总价预览

解决Laravel中Vue组件实现订单总价预览的问题

看起来你已经有了不错的起步,不过我注意到你的updateQuantity方法里有个小拼写错误(this.for...应该是this.form),先帮你修正这个问题,再一步步教你把这个Vue组件完美集成到Laravel Blade模板里:

1. 修正并优化app.js代码

我把重复的总价计算逻辑改成了计算属性,这样代码更简洁高效,同时修复了拼写错误:

const app = new Vue({
    el: '#item',
    data() {
        return {
            form: {
                price: 0,
                quantity: 0
            }
        }
    },
    // 用计算属性自动推导总价,无需在每个方法里重复计算
    computed: {
        total() {
            // 转成数字避免字符串相乘的异常
            return Number(this.form.price) * Number(this.form.quantity);
        }
    },
    methods: {
        updatePrice(event) {
            this.form.price = event.target.value;
        },
        updateQuantity(event) {
            this.form.quantity = event.target.value;
        }
    }
})

2. 在Laravel中引入Vue依赖

  • 如果是快速测试,可以用CDN引入Vue,在Blade模板的</body>前添加:
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    
  • 如果是Laravel项目标配的npm方式,确保已经运行npm install安装依赖,然后在resources/js/app.js中引入Vue,再执行npm run dev或npm run build编译前端资源。

3. 编写Laravel Blade模板

在你的Blade视图文件(比如resources/views/order/preview.blade.php)中添加Vue挂载的HTML结构,展示输入框和实时总价:

<div id="item" class="container mt-4">
    <div class="row mb-3">
        <div class="col-md-6">
            <label class="form-label">商品价格</label>
            <input type="number" class="form-control" @input="updatePrice" v-model="form.price" min="0" step="0.01">
        </div>
        <div class="col-md-6">
            <label class="form-label">购买数量</label>
            <input type="number" class="form-control" @input="updateQuantity" v-model="form.quantity" min="1">
        </div>
    </div>
    <div class="card p-3">
        <h5>订单总价: <span class="text-success fs-4">@{{ total }}</span></h5>
    </div>
</div>

<!-- 引入编译后的app.js,路径根据实际情况调整 -->
<script src="{{ asset('js/app.js') }}"></script>

注意点:

  • Blade模板中要使用@{{ }}作为Vue的插值语法,避免和Blade自身的{{ }}语法冲突
  • 用v-model可以简化数据绑定,和你原有的update方法兼容,也可以直接去掉方法,完全用v-model实现双向绑定

4. 测试运行

启动Laravel服务:

php artisan serve

访问对应的路由,输入价格和数量,就能看到总价实时更新的效果啦!

内容的提问来源于stack exchange,提问作者user3485442

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:36:32