首页 > 其他分享 >Vue三种方法实现简易计算器

Vue三种方法实现简易计算器

时间:2023-04-02 16:16:37浏览次数:36  
标签:opt function Vue num1 num2 简易 result 计算器 com

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <script src="js/vue.js"></script>
 7     </head>
 8     <body>
 9         <div id="app">
10             <!--v-model数据双向绑定  -->
11             <input id="input" type="number" v-model="num1"  @click="getResult" /> 
12              <select v-model="opt" @click="getResult">
13                  <option value ="+">+</option>
14                 <option value ="-">-</option>
15                 <option value ="*">*</option>
16                 <option value ="/">/</option>
17              </select>
18             <input type="number" v-model="num2"  @click="getResult"/>
19             <input type="text" v-model="result"  />
20         </div>
21         <script >
22             var vm = new Vue({
23                 el:'#app',
24                 data:{
25                     num1:0,//第一输入框中的数字
26                     num2:0,//第二输入框中的数字
27                     result:null,//计算结果
28                     opt:''//默认选择的运算符 可以设置为 '','+','-','*','/','%'
29                 },
30                 methods:{
31                     //计算表达式num1 (+ or - or * or / or %) num2 的值
32                     getResult(){
33                         if(this.opt === '') //未选择运算符时跳过运算
34                             return
35                         var str = this.num1 + this.opt + this.num2;
36                         this.result = eval(str);//使用eval计算表达式
37                     }
38                 },
39                 created:function(){
40                     this.getResult() //如果设定了初值,计算结果
41                 }
42             })
43         </script>
44     </body>
45 </html>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <input  type="number" v-model="num1" placeholder="请输入数字" /> 
             <select v-model="opt">
                 <option value ="+">+</option>
                <option value ="-">-</option>
                <option value ="*">*</option>
                <option value ="/">/</option>
             </select>
            <input type="number" v-model="num2" placeholder="请输入数字"/>
            <input type="text" v-model="result"  placeholder="计算结果"/>
        </div>
        <script>
            var vm = new Vue({
                el:'#app',
                data:{
                    num1:0,
                    num2:0,
                    result:null,
                    opt:''
                },
                methods:{
                    //求出计算结果的方法
                    com:function(){
                        //当表达式不完整时停止运算
                        if(this.opt === '' || this.num1=='' || this.num2==''){
                            this.result = null
                            return
                        }
                        this.result = eval(`${this.num1}${this.opt}(${this.num2})`)
                    }
                },
                watch:{
                    //如果num1发生改变,下面的函数就会运行
                    num1:function(){
                        this.com()
                    },
                    //如果num2发生改变,下面的函数就会运行
                    num2:function(){
                        this.com()
                    },
                    //如果opt发生改变,下面的函数就会运行
                    opt:function(){
                        this.com()
                    }
                },
                created(){
                    this.com()
                }
            })
        </script>
    </body>
</html>
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <script src="js/vue.js"></script>
 7     </head>
 8     <body>
 9         <div id="app">
10             <!--v-model数据双向绑定  placeholder用于输入框的提示信息-->
11             <input  type="number" v-model="number1" placeholder="请输入数字" />
12              <select v-model="opt">
13                  <option value ="+">+</option>
14                 <option value ="-">-</option>
15                 <option value ="*">*</option>
16                 <option value ="/">/</option>
17              </select>
18             <input type="number" v-model="number2" placeholder="请输入数字"/>
19             <input type="text" v-model="result" placeholder="计算结果"/>
20         </div>
21         <script >
22             var vm = new Vue({
23                 el:'#app',
24                 data:{
25                     number1:0,//第一输入框中的数字
26                     number2:0,//第二输入框中的数字
27                     opt:''//默认选择的运算符 
28                 },
29                 computed:{
30                     result:function(){//函数调用
31                         if(this.opt == '' || this.number1=='' || this.number2 =='') //表达式不完整时跳过运算
32                             return null
33                         return eval(`${this.number1}${this.opt}(${this.number2})`)//使用eval计算表达式的值
34                     }
35                 }
36             })
37         </script>
38     </body>
39 </html>

 

依次为普通方法,监听属性。计算属性

标签:opt,function,Vue,num1,num2,简易,result,计算器,com
From: https://www.cnblogs.com/-cjl/p/17280651.html

相关文章

  • VUE分别使用普通方法、计算属性、监听器完成简易计算器
    计算器功能:1.加减乘除模可以随意切换使用表单元素<seclect>2.当输入框中数字改变时实时得出运算结果方法1:v-model绑定input框的值,绑定input键盘按下和鼠标点击时触发自定义方法getResult,该方法用来计算表达式的值。方法2:使用computed计算属性方法3:使用watch侦听属性3.可以使......
  • vue计算器
    <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>methods</title><scriptsrc="js/vue.js"></script></head><body><di......
  • VUE分别写出 4种计算器
    监听器计算机<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>watch</title><scriptsrc="js/vue.js"></script></head><body>......
  • 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)为能够交互的客户端......