博主信息
博文 33
粉丝 0
评论 0
访问量 24961
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
原生购物车 Vue 改写
lucaslwk
原创
468人浏览过

原生购物车 Vue 改写

vue购物车

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>购物车</title>
  8. <link rel="stylesheet" href="static/shoppingcart.css" />
  9. <script src="https://unpkg.com/vue@next"></script>
  10. </head>
  11. <body>
  12. <div class="box">
  13. <ul class="list" @change="update">
  14. <li>
  15. <span>品名</span><span>数量</span><span>单价</span><span>金额</span>
  16. </li>
  17. <itemlist item="手机" price="100"></itemlist>
  18. <itemlist item="电脑" price="200"></itemlist>
  19. <itemlist item="相机" price="300"></itemlist>
  20. <li>
  21. <span>总计:</span>
  22. <span class="total-num">{{totalnum}}</span>
  23. <span class="total-amount">{{totalamount}}</span>
  24. </li>
  25. </ul>
  26. <button class="account">结算</button>
  27. </div>
  28. <template id="itemlist">
  29. <li>
  30. <span class="content">{{item}}</span>
  31. <input type="number" min="1" class="num" v-model="num" />
  32. <span class="price">{{price}}</span>
  33. <span class="amount">{{payAmount}}</span>
  34. </li>
  35. </template>
  36. <script>
  37. const app = Vue.createApp({
  38. data() {
  39. return {
  40. totalnum: 0,
  41. totalamount: 0,
  42. };
  43. },
  44. methods: {
  45. update() {
  46. const numarr = [...document.querySelectorAll(".num")].map((item) =>
  47. parseInt(item.value)
  48. );
  49. this.totalnum = numarr.reduce((a, b) => a + b);
  50. const amountarr = [...document.querySelectorAll(".amount")].map(
  51. (item) => parseInt(item.innerHTML)
  52. );
  53. this.totalamount = amountarr.reduce((a, b) => a + b);
  54. },
  55. },
  56. mounted: function () {
  57. this.update();
  58. },
  59. });
  60. app.component("itemlist", {
  61. template: "#itemlist",
  62. props: ["item", "price"],
  63. data() {
  64. return {
  65. num: 1,
  66. };
  67. },
  68. computed: {
  69. payAmount() {
  70. return this.price * this.num;
  71. },
  72. },
  73. });
  74. app.mount(".box");
  75. </script>
  76. </body>
  77. </html>
批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学