首页 > 其他分享 >VUE分别写出 4种计算器

VUE分别写出 4种计算器

时间:2023-04-02 15:33:28浏览次数:36  
标签:case VUE Number break 写出 result 计算器 n1 n2

监听器计算机

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

监听器:主要就是监听自身数据所发生的变化 特别注意的是监视同一个东西为多个属性数据时,把多个属性数据放到一个数组里面进行监视这样更方便

方法计算器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>methods</title>
        <script src="js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <input type="text" v-model="n1">
            <select v-model="opt">
                <option value="+">+</option>
                <option value="-">-</option>
                <option value="*">*</option>
                <option value="/">/</option>
            </select>
            <input type="text" v-model="n2">
            <hr><button @click="fangfa">计算</button><hr />
            
            <input type="text" v-model="result">
        </div>

        <script>
            var vm = new Vue({
                el: '#app',
                data: {
                    n1: 0,
                    n2: 0,
                    opt: '+',
                    result: 0
                },
                methods: {
                    fangfa() {
                        switch (this.opt) {
                            case '+':
                                this.result = Number(this.n1) + Number(this.n2);
                                break;
                            case '-':
                                this.result = Number(this.n1) - Number(this.n2);
                                break;
                            case '*':
                                this.result = Number(this.n1) * Number(this.n2);
                                break;
                            case '/':
                                this.result = Number(this.n1) / Number(this.n2);
                                break;
                        }
                    }
                }
            });
        </script>
    </body>
</html>

方法主要就是定义方法进行调用接收

计算属性计算器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>computed</title>
        <script src="js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <input id="input" type="text" v-model="n1"/>
             <select v-model="opt">
                 <option value ="+">+</option>
                <option value ="-">-</option>
                <option value ="*">*</option>
                <option value ="/">/</option>
             </select>
            <input type="text" v-model="n2"/>
            <input type="text" v-model="result"/>
        </div>
        <script type="text/javascript">
            var vm = new Vue({
                el:'#app',
                data:{
                    n1:0,
                    n2:0,
                    opt:'+'
                },
                computed:{
                    result(){
                        switch (this.opt) {
                            case '+':
                                return Number(this.n1) + Number(this.n2);
                                break;
                            case '-':
                                return Number(this.n1) - Number(this.n2);
                                break;
                            case '*':
                                return Number(this.n1) * Number(this.n2);
                                break;
                            case '/':
                                return Number(this.n1) / Number(this.n2);
                                break;
                        }
                    }
                }
            })
        </script>
    </body>
</html> 

计算属性:主要就是计算完数据要有返回值 特别注意的是计算属性的函数方法要有返回值,直接使用双花括号接收就行

表达式计算器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="js/vue.js" type="text/javascript" charset="utf-8"></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 />
            <div>
                <p v-if="opt=='+'">结果:{{number1+number2}}</p>
                <p v-if="opt=='-'">结果:{{number1-number2}}</p>
                <p v-if="opt=='*'">结果:{{number1*number2}}</p>
                <p v-if="opt=='/'">结果:{{number1/number2}}</p>
            </div>
        </div>
    </body>
    <script type="text/javascript">
        var vm = new Vue({
            el:"#app",
            data:{
                number1:0,
                number2:0,
                opt:"*"
            }
        })
    </script>
</html>

表达式:使用表达式用v-if进行绑定

标签:case,VUE,Number,break,写出,result,计算器,n1,n2
From: https://www.cnblogs.com/lmt6/p/17280533.html

相关文章

  • vue计算器的四种代码
     1.使用表达式<!DOCTYPEhtml><html><head><metacharset="utf-8"/><title>hhhh</title><scripttype="text/javascript"src="js/vue.js"></script>&l......
  • 用三种方式实现简易及计算器
    目标:用三种方式实现简易的计算器(计算属性,监听器,方法)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......