v-model的小案例---计算器的实现

这篇博客介绍了两种使用Vue.js创建简单计算器的方法。第一种通过switch语句进行计算,第二种利用eval函数动态执行计算表达式。这两种方法展示了Vue如何结合HTML和JavaScript处理用户输入并进行动态计算。

第一种方法:

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

    <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">

        <!-- 点击等号算出结果 -->

        <button @click="calc">=</button>

        <!-- 最终的计算结果 -->

        <input type="text" v-model="result">

    </div>

    <script>

        new Vue({

            el: "#app",

            data: {

                n1: 0,

                n2: 0,

                result: 0,

                opt: '+'

            },

            methods: {

                calc() {

                    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>

第二种方法:

 

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

    <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">

        <!-- 点击等号算出结果 -->

        <button @click="calc">=</button>

        <!-- 最终的计算结果 -->

        <input type="text" v-model="result">

    </div>

new Vue({

            el: "#app",

            data: {

                n1: 0,

                n2: 0,

                result: 0,

                opt: '+'

            },

            methods: {

                calc() {                 

                    calc(){

                     var codestr='Number(this.n1) '+this.opt+ 'Number(this.n2)'

                     this.result=eval(codestr)

                    }

            }

        })

    </script>

### 关于 UniApp 小型项目实战案例与开发教程 #### 1. **UniApp 小型项目推荐** 对于希望快速上手并积累实践经验的开发者而言,选择合适的小型项目至关重要。以下是一些适合初学者尝试的经典小型项目案例- **待办事项列表(To-Do List)** 这是最经典的前端练习项目之一,可以帮助开发者熟悉数据绑定、事件监听以及页面渲染机制。通过这个项目,可以深入了解 Vue.js 的双向绑定特性以及 UniApp 对其的支持方式[^3]。 ```javascript data() { return { todos: [], newTodo: '' }; }, methods: { addTodo() { if (this.newTodo.trim()) { this.todos.push({ text: this.newTodo, completed: false }); this.newTodo = ''; } }, toggleCompleted(index) { this.$set(this.todos[index], 'completed', !this.todos[index].completed); } } ``` 以上代码片段展示了如何动态更新待办事项列表,并通过 `v-model` 绑定输入框内容。 --- #### 2. **天气查询应用** 这是一个实用性强且易于实现的小型项目。主要功能包括获取当前城市天气状况、未来几天预报等信息。该项目涉及 API 请求处理、异步编程技巧等方面的知识点[^2]。 示例代码如下所示: ```javascript async getWeatherData(cityName) { try { const response = await uni.request({ url: `https://api.weather.com/.../${cityName}`, method: 'GET' }); console.log('Weather Data:', response.data); return response.data; } catch (error) { console.error('Error fetching weather data:', error.message); } } ``` 此处使用了 `uni.request()` 方法发起 HTTP GET 请求调用外部气象服务接口。 --- #### 3. **简易计算器** 制作一个简单的四则运算计算器也是不错的练手机会。它可以锻炼界面设计能力以及逻辑判断思维模式。同时还能进一步巩固对按钮点击回调函数的认识程度[^1]。 --- #### 4. **图片上传分享工具** 随着社交媒体日益普及,在线照片编辑与分发成为大众日常生活中不可或缺的一部分。因此创建这样一个轻量级的照片管理解决方案无疑具备很高的现实意义价值所在之处[^3]。 关键部分可能涉及到文件读取保存操作: ```javascript function uploadImage(filePath) { return new Promise((resolve, reject) => { uni.uploadFile({ url: 'http://your-server/upload', filePath, name: 'file', success(res) { resolve(JSON.parse(res.data)); }, fail(err) { reject(err); } }); }); } ``` --- ### 结语 通过参与这些精心挑选出来的迷你工程项目训练营活动,相信每位学员都能够更加深刻体会到 UniApp 所带来的便捷高效体验感!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值