本文实例为大家分享了vue实现简单计算器的具体代码,供大家参考,具体内容如下

1.功能

1)  、实现加减乘除混合(包含小数点)
2)、实现删除退格
3)、实现内容重置

2.效果图

说实话不好看

3.代码

1).HTML部分       

 <div id='app'>
        <input type="text" v-model="band">
        <table>
            <tbody>
                <!-- 这里实现每3个数字换下一行 -->
                <tr v-for='(item,index) in list' :key='item.id' v-if="index%3==0">
                    <td v-for='i in 3' v-if="list[i-1 index]!=null" @click='down(list[i-1 index].num)'>{{list[i-1 index].num}}</td>
                </tr>
            </tbody>
        </table>
        <button @click='add'> </button>
        <button @click='sub'>-</button>
        <button @click='division'>/</button><br/>
        <button @click='multiplication'>*</button>
        <button @click='sum1'>=</button>
        <button @click='clear'>AC</button><br/>
        <button @click='delete1'> ⬅ </button>
</div>

2).CSS部分

<style>
        button {
            width: 50px;
            height: 30px;
            border-radius: 50%;
        }
        
        td {
            text-align: center;
            width: 50px;
            height: 40px;
            border: 1px solid black;
            cursor: default
        }
        
        input {
            width: 150px;
        }
        #app {
            width: 160px;
            margin-top: 70px;
            margin-left: 600px;
        }
</style>

3.vm实例

 <!-- 这里我是通过对vue文件的引入 -->
    <script src="./lib/vue-2.6.12.js"></script>
    <script>
        const vm = new Vue({
            el: '#app',
            data: {
                band: '', //展示在input中
                arr: [], //存储输入的数字和符号
                sum: 0, //计算总和
                under: '', //记录每一次的数字和符号,然后放入arr数组,放入一次清除一次
                cheng: '', //记录乘的结果
                chu: '', //记录除的结果
                befornum: 0,
                afternum: 0, //befornum和afternum在sum中计算
                list: [{
                    id: 0,
                    num: 0
                }, {
                    id: 1,
                    num: 1
                }, {
                    id: 2,
                    num: 2
                }, {
                    id: 3,
                    num: 3
                }, {
                    id: 4,
                    num: 4
                }, {
                    id: 5,
                    num: 5
                }, {
                    id: 6,
                    num: 6
                }, {
                    id: 7,
                    num: 7
                }, {
                    id: 8,
                    num: 8
                }, {
                    id: 9,
                    num: 9
                }, {
                    id: 10,
                    num: '.'
                }]
            },
            methods: {
                //输入数字
                down(n) {
                    this.band  = n
                    this.under  = n
 
                },
                //实现删除功能,这里我只能实现整个数字删除
                delete1() {
                    if (this.under != '') {
                        this.arr[this.arr.length] = this.under
                        var replace = this.arr.pop()
                        this.band = this.band.substring(0, this.band.lastIndexOf(replace));
                        this.under = ''
                    } else {
                        var replace = this.arr.pop()
                        this.band = this.band.substring(0, this.band.lastIndexOf(replace));
                    }
 
                },
                //判断是否连续乘除
                panduan() {
                    if (this.arr[this.arr.length - 2] == '/') {
                        this.chu = parseFloat(this.arr[this.arr.length - 3]) / parseFloat(this.arr[this.arr.length - 1])
                        this.arr.splice(this.arr.length - 3, 3);
                        this.arr[this.arr.length] = this.chu
                    }
                    if (this.arr[this.arr.length - 2] == '*') {
                        this.cheng = parseFloat(this.arr[this.arr.length - 3]) * parseFloat(this.arr[this.arr.length - 1])
                        this.arr.splice(this.arr.length - 3, 3);
                        this.arr[this.arr.length] = this.cheng
                    }
                },
                //加法
                add() {
                    if (this.under != '') {
                        this.arr[this.arr.length] = this.under
                        this.panduan()
                        this.band  = ' '
                        this.arr[this.arr.length] = ' '
                        this.under = ''
                    }
                },
                //减法
                sub() {
                    if (this.under != '') {
                        this.arr[this.arr.length] = this.under
                        this.panduan()
                        this.band  = '-'
                        this.arr[this.arr.length] = '-'
                        this.under = ''
                    }
 
                },
                //除法
                division() {
                    if (this.under != '') {
                        this.band  = '/'
                        this.arr[this.arr.length] = this.under
                        this.panduan()
                        this.chu = ''
                        this.arr[this.arr.length] = '/'
                        this.under = ''
                    }
 
                },
                //乘法
                multiplication() {
                    if (this.under != '') {
                        this.band  = '*'
                        this.arr[this.arr.length] = this.under
                        this.panduan()
                        this.cheng = ''
                        this.arr[this.arr.length] = '*'
                        this.under = ''
                    }
 
                },
                //计算总和
                sum1() {
                    if (this.under != '') {
                        this.arr.push(this.under)
                        this.panduan()
                            //遍历arr数组
                        for (i = 0; i < this.arr.length; i  ) {
                            if (this.arr[i] == ' ') {
                                this.arr[i   1] = parseFloat(this.arr[i - 1])   parseFloat(this.arr[i   1])
                            }
                            if (this.arr[i] == '-') {
                                this.arr[i   1] = parseFloat(this.arr[i - 1]) - parseFloat(this.arr[i   1])
                            }
                        }
                        this.sum = this.arr[this.arr.length - 1]
                        this.under = ''   this.sum
                        this.band  = '='
                        this.band = ''   this.sum
                         this.arr = []
                        this.sum = 0
                    }
 
 
                },
                //重置
                clear() {
                    this.band = ''
                    this.sum = 0
                    this.arr = []
                    this.under = ''
                }
            }
        })
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

vue实现简单的计算器功能的更多相关文章

  1. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. vue自定义加载指令v-loading占位图指令v-showimg

    这篇文章主要为大家介绍了vue自定义加载指令和v-loading占位图指令v-showimg的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  3. vue使用动画实现滚动表格效果

    这篇文章主要为大家详细介绍了vue使用动画实现滚动表格效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  4. 关于Vue 监控数组的问题

    这篇文章主要介绍了Vue 监控数组的示例,主要包括Vue 是如何追踪数据发生变化,Vue 如何更新数组以及为什么有些数组的数据变更不能被 Vue 监测到,对vue监控数组知识是面试比较常见的问题,感兴趣的朋友一起看看吧

  5. Vue子组件props从父组件接收数据并存入data

    这篇文章主要介绍了Vue子组件props从父组件接收数据并存入data的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  6. 基于JavaScript实现网页计算器

    这篇文章主要为大家详细介绍了基于JavaScript实现网页计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  7. Vue h函数的使用详解

    本文主要介绍了Vue h函数的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  8. VUE响应式原理的实现详解

    这篇文章主要为大家详细介绍了VUE响应式原理的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

  9. vue+Element ui实现照片墙效果

    这篇文章主要为大家详细介绍了vue+Element ui实现照片墙效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. vue+elemet实现表格手动合并行列

    这篇文章主要为大家详细介绍了vue+elemet实现表格手动合并行列,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部