美文网首页
加减乘除原生写法,及vue写法对比

加减乘除原生写法,及vue写法对比

作者: 随风飞2019 | 来源:发表于2020-06-12 10:51 被阅读0次
//样式部分
<div class="container" style="margin-top: 60px;">
        <div class="col-md-8" style="display: flex;align-items: center;justify-content: center;">
            <div class="col-md-3">
                <input type="text" class="form-control num1">
            </div>
            <div class="col-md-2" style="display: flex;align-items: center;justify-content: center;">
                <select style="width: 70px;height:26px;" class="select-wrap">
                    <option value ="+">+</option>
                    <option value ="-">-</option>
                    <option value="*">*</option>
                    <option value="/">/</option>
                  </select>
            </div>
            <div class="col-md-3">
                <input type="text" class="form-control num2">
            </div>
            <div class="col-md-1" onclick="jisuan()">
                =
            </div>
            <div class="col-md-3">
                <input type="text" class="form-control res">
            </div>
        </div>
    </div>
//第一种绑定事件的方法,直接在div上增加点击事件处理函数,注意加 ()运行
function jisuan(){
            let num1 = parseFloat(document.querySelector(".num1").value);
            let num2 = parseFloat(document.querySelector(".num2").value);
            let methods = document.querySelector(".select-wrap").value;
            // if(methods==="+"){
            //     document.querySelector(".res").value=num1+num2
            // }
            // if(methods==="-"){
            //     document.querySelector(".res").value=num1-num2
            // }
            // if(methods==="*"){
            //     document.querySelector(".res").value=num1*num2
            // }
            // if(methods==="/"){
            //     document.querySelector(".res").value=num1/num2
            // }
            document.querySelector(".res").value=eval(num1+methods+num2)
        }
//感受一下eval的强大
//第二种写法,去掉div上绑定的处理函数,该用监听点击事件
let jisuan = document.querySelector(".jisuan");
        jisuan.addEventListener("click",()=>{
            let num1 = parseFloat(document.querySelector(".num1").value);
            let num2 = parseFloat(document.querySelector(".num2").value);
            let methods = document.querySelector(".select-wrap").value;
            document.querySelector(".res").value=eval(num1+methods+num2)
        })
//vue写法对比
<el-row :gutter="20">
      <el-col :span="4" :offset="4">
        <el-input v-model="num1" type="number"></el-input>
      </el-col>
      <el-col :span="2">
        <el-select v-model="selectValue">
          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </el-col>
      <el-col :span="4">
        <el-input v-model="num2" type="number"></el-input>
      </el-col>
      <el-col :span="1">
        <span @click="getResNum">=</span>
      </el-col>
      <el-col :span="4">
        <el-input v-model="res" type="number"></el-input>
      </el-col>
    </el-row>

export default {
    data() {
      return {
        selectValue: "",
        num1: "",
        num2: "",
        res: "",
        options: [
          {
            label: "+",
            value: "+"
          },
          {
            label: "-",
            value: "-"
          },
          {
            label: "*",
            value: "*"
          },
          {
            label: "/",
            value: "/"
          }
        ]
      }
    },
    methods: {
      getResNum() {
        this.res = eval(this.num1 + this.selectValue + this.num2);
      }
    },
  }

相关文章

网友评论

      本文标题:加减乘除原生写法,及vue写法对比

      本文链接:https://www.haomeiwen.com/subject/vdkgtktx.html