首页 > 其他分享 >vue计算器的四种代码

vue计算器的四种代码

时间:2023-04-02 15:24:27浏览次数:32  
标签:opt vue num1 num2 res Number 计算器 parseInt 四种

 

1.使用表达式

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>hhhh</title>
        <script type="text/javascript" src="js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <input type="text" v-model.number="number1" />
            <select v-model="opt">
                <option>+</option>
                <option>-</option>
                <option>*</option>
                <option>/</option>
            </select>
            <input type="text" v-model.number="number2" />
            <br />
            结果:{{number1+number2}}--{{number1*number2}}
        </div>
    </body>
    <script type="text/javascript">
        var vm = new Vue({
            el:"#app",
            data:{
                number1:0,
                number2:0,
                
            }
        })
    </script>
</html>

2.使用computed属性

input输入框定义符号,文本框绑定js内容,最后写computed

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hhhh</title>
    <script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="text" v-model="num1">
        <select v-model="opt">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <input type="text" v-model="num2">
        <span> = </span>
        <input type="text" v-model="res">
    </div>
</body>
<script>
    new Vue({
        el:"#app",
        data:{
            num1:"",
            num2:"",
            opt:"+",
        },
        computed:{
            res(){
                if(this.opt=="+")
                {
                    return Number(this.num1)+Number(this.num2);
                }
                else if(this.opt=="-")
                {
                    return parseInt(this.num1-this.num2);
                }
                else if (this.opt == "*")
                {
                    return parseInt(this.num1 * this.num2);
                }
                else if (this.opt == "/") {
                    return parseInt(this.num1 / this.num2);
                }
            }
        }
       })
</script>
</html>

3.使用methods方法

input用v-model绑定,number转换数据类型

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>hhhh</title>
        <script type="text/javascript" src="js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <input type="text" v-model="number1" />
            <select v-model="opt">
                <option value="1">+</option>
                <option value="2">-</option>
                <option value="3">*</option>
                <option value="4">/</option>
            </select>
            <input type="text" v-model="number2" />
            <input type="button"value="="@click="but" />
            <input type="text" v-model="res" />
        </div>
    </body>
    <script type="text/javascript">
        var vm = new Vue({
            el:"#app",
            data:{
                number1:"",
                number2:"",
                res:"",
                opt:"1"
            },
            methods:{
                but(){
                    switch(this.opt){
                        case "1":
                        this.res=parseInt(this.number1)+parseInt(this.number2)
                        break;
                        case "2":
                        this.res=parseInt(this.number1)-parseInt(this.number2)
                        break;
                        case "3":
                        this.res=parseInt(this.number1)*parseInt(this.number2)
                        break;
                        case "4":
                        this.res=parseInt(this.number1)/parseInt(this.number2)
                        break;
                    }
                }
            }
        });
    </script>
</html>

4.使用watch监听器

使用watch监听器监视数据和运算符变化,任意一个值变化时重新计算结果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>hhhhh</title>
        <script type="text/javascript" src="js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <input id="input" type="text" v-model="num1" /> 
             <select v-model="opt">
                 <option value ="+">+</option>
                <option value ="-">-</option>
                <option value ="*">*</option>
                <option value ="/">/</option>
             </select>
            <input type="text" v-model="num2" />
            <input type="text" v-model="res" />
        </div>
        <script type="text/javascript">
            var vm = new Vue({
                el:'#app',
                data:{
                    num1:0,
                    num2:0,
                    res:null,
                    opt:'+'
                },
                methods:{
                    watch1(){
                        switch (this.opt) {
                            case '+':
                                this.res = Number(this.num1) + Number(this.num2);
                                break;
                            case '-':
                                this.res = Number(this.num1) - Number(this.num2);
                                break;
                            case '*':
                                this.res = Number(this.num1) * Number(this.num2);
                                break;
                            case '/':
                                this.res = Number(this.num1) / Number(this.num2);
                                break;
                        }
                    }
                },
                watch:{
                    num1:function(){
                        this.watch1()
                    },
                    num2:function(){
                        this.watch1()
                    },
                    opt:function(){
                        this.watch1()
                    }
                },
                created(){
                    this.watch1()
                }
            })
        </script>
    </body>
</html>

 

标签:opt,vue,num1,num2,res,Number,计算器,parseInt,四种
From: https://www.cnblogs.com/xsl6/p/17280527.html

相关文章

  • 用三种方式实现简易及计算器
    目标:用三种方式实现简易的计算器(计算属性,监听器,方法)1.创建html,导入vue,实例化vue对象。<!DOCTYPEhtml><html><head><metacharset="utf-8"/><title></title><scripttype="text/javascript"src=&quo......
  • VUE2.0 学习 第一组
    本笔记主要参考菜鸟教程和官方文档编写。 1.对于Vue2.0来说每个vue应用都需要实例化vue来实现。   varvm=newVue({//选项}) 2.首先,DOM是一种api,它可以动态地访问程序和脚本,更新其内容、结构和文档,我认为符合这类功能的都可以叫dom,其次,每一个DOM元素的id(......
  • 第三十二篇 vue - 应用规模化 - 单文件组件 SFC
    单文件组件SFCVue的单文件组件(即*.vue文件,英文Single-FileComponent,简称SFC)是一种特殊的文件格式,使我们能够将一个Vue组件的模板、逻辑与样式封装在单个文件中Vue的单文件组件是网页开发中HTML、CSS和JavaScript三种语言经典组合的自然延伸。<template>、<sc......
  • 第三十三篇 vue - 应用规模化 - 工具链
    项目脚手架viteVite是一个轻量级的、速度极快的构建工具,对VueSFC提供第一优先级支持。作者是尤雨溪,同时也是Vue的作者要使用Vite来创建一个Vue项目,非常简单npminitvue@latest这个命令会安装和执行create-vue,它是Vue提供的官方脚手架工具。跟随命令行的提示......
  • 第三十五篇 vue - 应用规模化 - 状态管理 - Pinia
    什么是状态管理理论上来说,每一个Vue组件实例都已经在“管理”它自己的响应式状态了。我们以一个简单的计数器组件为例<script>exportdefault{//状态data(){return{count:0}},//动作methods:{increment(){this.count++......
  • 第三十四篇 vue - 应用规模化 - 服务端渲染 - SSR
    总览什么是SSRSSR-服务端渲染Vue.js是一个用于构建客户端应用的框架。默认情况下,Vue组件的职责是在浏览器中生成和操作DOMVue也支持将组件在服务端直接渲染成HTML字符串,作为服务端响应返回给浏览器,最后在浏览器端将静态的HTML“激活”(hydrate)为能够交互的客户端......
  • 第三十六篇 vue - 应用规模化 - 路由
    客户端vs服务端路由服务端路由指的是服务器根据用户访问的URL路径返回不同的响应结果。当我们在一个传统的服务端渲染的web应用中点击一个链接时,浏览器会从服务端获得全新的HTML,然后重新加载整个页面。然而,在单页面应用中,客户端的JavaScript可以拦截页面的跳转请求,动......
  • 第三十七篇 vue - 应用规模化 - 测试
    为什么需要测试自动化测试能够预防无意引入的bug,并鼓励开发者将应用分解为可测试、可维护的函数、模块、类和组件。这能够帮助你和你的团队更快速、自信地构建复杂的Vue应用。与任何应用一样,新的Vue应用可能会以多种方式崩溃,因此,在发布前发现并解决这些问题就变得十分重要......
  • vue3 directive自定义指令
    importstorefrom'../store'//新建jsexportdefault{install(app){//权限控制,没有相关的权限,则删除模块app.directive('permission',{mounted(el,val){if(el&&!store.state.rule.includes(val.valu......
  • vue+webSocket+springCloud消息推送交互
    一、后台代码:1、pom里面加上依赖;<!--webSocket坐标依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.2.4.RE......