当前位置: 首页 > news >正文

从零使用vue脚手架制作一个简易的计算器

目录

1.环境

1.node的安装

2.创建vue项目

1.安装cli脚手架

2.创建项目

3.vs code的安装

4.找到项目目录

3.开发一个简易的计算器

1.开发一个按钮组件

2.使用button按钮

3.编写计算器界面UI

4.修改app.vue的内容如下

5.重新运行项目



1.环境

  1. 使用node版本 
    1. v20.19.5
  2. npm 版本
    1. 10.8.2
  3. 1.node的安装

    1. 如果不知道node如何安装和配置,可以参考一下官网
      1. https://nodejs.cn/download/https://nodejs.cn/download/
      2. 这个是官网,安装简单直接下一步就可以了
      3. 然后设置一下镜像源就可以了
      4. 输入下面的指令就可以了    


      5. npm config set registry http://registry.npm.taobao.org/
  4. 也可以使用nvm,可参考下面的一篇博客。简易使用上面的,比较简单
    1. https://blog.csdn.net/2301_76862031/article/details/140500534?spm=1011.2415.3001.5331https://blog.csdn.net/2301_76862031/article/details/140500534?spm=1011.2415.3001.5331

2.创建vue项目

  1. 1.安装cli脚手架

    1. 自己创建一个目录 然后输入cmd,点击回车就可以了
    2. npm install -g @vue/cli
    3. 出现下面的情况就算是安装成功了
    4. 验证版本
    5. vue --version
  2. 2.创建项目

    1. vue create my-vue-app
    2. 点击Enter
    3. 等待安装即可
    4. 上面是安装成功了
    5. 输入 cd my-vue-app
    6.  npm run serve
    7. 浏览器打开网址
    8. http://localhost:8080/
    9. vue项目创建成功了
    10. 关闭cmd窗口
  3. 3.vs code的安装

    1. https://code.visualstudio.com/https://code.visualstudio.com/
    2. 点击download 下载就可以了
    3. 然后一路next就可以了
    4. 这里就不做演示了
  4. 4.找到项目目录

    1. 拖拽到vscode上面
    2. 然后点击 trust
    3. 出现上面的界面就算是成功了
    4. 鼠标右键 
    5. 点击Open in Integrated Terminal
    6. 输入  npm run serve
    7. 可以开始编写项目了
  5. 安装vue插件
    1. 然后我们的语法就有提示了

3.开发一个简易的计算器

  1. 1.开发一个按钮组件

    1. 找到package.json
      1.  "globals": {

              "defineProps": "readonly",

              "defineEmits": "readonly",

              "defineExpose": "readonly",

              "withDefaults": "readonly"

            }

      2. 添加如上数据

      3. 重新启动 npm run serve

    2. 编写MyButton 代码

<script setup>
import { ref } from 'vue'
const props = defineProps({buttonText: {type: String,required: ''}
})
// 按钮初始的颜色
const buttonColor = ref('rgb(52, 152, 219)')
const changeColor = () => {// 生成RGB随机颜色const r = Math.floor(Math.random() * 256)const g = Math.floor(Math.random() * 256)const b = Math.floor(Math.random() * 256)buttonColor.value = `rgb(${r}, ${g}, ${b})`
}
</script>

  1. 功能点击随机变化颜色
  2. 并且可以传入文本内容   

    2.使用button按钮

    1. 找到app.vue文件
    2. 修改里面的内容如下
    3. 
      <script setup>
      </script>
      

    4. 找到main.js

      1. 挂载全局组件

      2. import MyButton from './components/MyButton.vue'

        // 挂载组件

        app.component('MyButton',MyButton)

      3. import { createApp } from 'vue'
        import App from './App.vue'
        import MyButton from './components/MyButton.vue'
        const app = createApp(App)
        // 挂载组件
        app.component('MyButton',MyButton)
        app.mount('#app')

      4. 打开网址可以看到我们的按钮

      5. http://localhost:8080/

      6. 每次点击按钮颜色都会发生不同的变化

    5. 3.编写计算器界面UI

      1. 
        <script setup>
        import { ref } from 'vue'
        // 计算器状态
        const currentOperand = ref('')
        const previousOperand = ref('')
        const operation = ref('')
        const shouldResetScreen = ref(false)
        // 添加数字
        const appendNumber = (number) => {if (shouldResetScreen.value) {currentOperand.value = ''shouldResetScreen.value = false}// 防止多个小数点if (number === '.' && currentOperand.value.includes('.')) return// 防止以0开头(除了0.)if (number === '0' && currentOperand.value === '0') returnif (number !== '.' && currentOperand.value === '0') {currentOperand.value = numberreturn}currentOperand.value += number
        }
        // 添加操作符
        const appendOperation = (op) => {if (currentOperand.value === '' && previousOperand.value === '') returnif (currentOperand.value === '') {operation.value = opreturn}if (previousOperand.value !== '') {calculate()}operation.value = oppreviousOperand.value = currentOperand.valueshouldResetScreen.value = true
        }
        // 计算结果
        const calculate = () => {if (previousOperand.value === '' || currentOperand.value === '' || operation.value === '') returnconst prev = parseFloat(previousOperand.value)const current = parseFloat(currentOperand.value)if (isNaN(prev) || isNaN(current)) returnlet computationswitch (operation.value) {case '+':computation = prev + currentbreakcase '-':computation = prev - currentbreakcase '×':computation = prev * currentbreakcase '÷':computation = prev / currentbreakcase '%':computation = prev % currentbreakdefault:return}currentOperand.value = computation.toString()operation.value = ''previousOperand.value = ''shouldResetScreen.value = true
        }
        // 清空
        const clear = () => {currentOperand.value = ''previousOperand.value = ''operation.value = ''
        }
        // 删除最后一位
        const deleteLast = () => {if (currentOperand.value === '') returncurrentOperand.value = currentOperand.value.slice(0, -1)
        }
        </script>
        

      2. 这里主要使用ref函数,和一些函数的逻辑

        1. 清除数据,就是是数据置空  var_info  = '' 

        2. %加减乘除= 就是一些js内置的

        3. 使用switch根据传入 按钮 传入的值触发不同的功能

    6. 挂载组件

      1. import { createApp } from 'vue'
        import App from './App.vue'
        import MyButton from './components/MyButton.vue'
        import CaculatorUI from './components/CaculatorUI.vue'
        const app = createApp(App)
        // 挂载组件
        app.component('MyButton',MyButton)
        app.component('CaculatorUI',CaculatorUI)
        app.mount('#app')

    7. 4.修改app.vue的内容如下

      1. 
        <script setup>
        </script>
        

    8. 5.重新运行项目

      1. npm run serve
      2. 打开浏览器
      3. 可以看到我们的计算器界面
    9. 6.成品结果

    http://www.rkmt.cn/news/54127.html

    相关文章:

  3. 完整教程:全面解读大型语言模型测评:从认知演进到实操框架
  4. 公众号怎么上传附件?使用快存文档支持word,excel,pdf格式。
  5. 推荐北京起诉离婚律师:专业团队助力婚姻纠纷妥善处理
  6. 数形结构转换工具类
  7. 配置Jenkins代理节点的过程,将代理节点注册为服务
  8. linux dns修改
  9. ES6(ECMAScript 2015)功能介绍,运用场景,对应机制点完整采用示例
  10. SketchUp 坯子库插件从下载到使用全流程教程
  11. linux disable
  12. 价值原语的三角奠基:语言、行为与协议
  13. ai学习机是不是智商税?到底有没有用?有推荐的品牌吗?
  14. 两个商业插件改为开源插件
  15. Proxmox VE 9.0 安装 【pve】
  16. 07、点亮第一个LED - 指南
  17. 南京昆虫博物馆一游(2025)
  18. 2025 年 11 月氮化处理厂家推荐排行榜,模具/不锈钢/钛合金表面/高速钢/等离子/辉光离子氮化,真空氮化处理/低温氮化/氮化热处理公司推荐
  19. linux dev sda
  20. zabbix6.0+grafana12.2 配置Dashboards
  21. 第七章 图
  22. 2025年11月挖掘机厂家推荐榜单:五大品牌综合对比与选购指南
  23. OBDSTAR ISCAN Marine Diagnostic Scanner Supports Hidea HDEF115/130/40/40 SK/50/60 Outboard Models
  24. 2025年11月热门挖掘机品牌排名推荐:实地作业表现与成本效益详析
  25. 2025年11月美国求职机构推荐榜单及选择指南:权威机构综合对比分析
  26. 2025年盘式振动研磨机定做厂家权威推荐榜单:实验振动研磨机/杯式振动研磨机/小型行星球磨机源头厂家精选
  27. 2025年11月香港求职机构避坑指南:权威口碑评价与选择要点
  28. 2025年11月人才盘点公司推荐榜单:知名机构列表与权威选择指南
  29. 2025年车间照明母线槽直销厂家权威推荐榜单:服装厂车间照明规划/车间照明规划设计/流水槽带母线槽灯架源头厂家精选
  30. 2025年11月不锈钢精密铸造厂家推荐榜单:综合口碑与实力排行分析
  31. 山东欧太亚塑业有限公司联系方式:行业通用联系渠道解析
  32. 2025年热流道热电偶供货厂家权威推荐榜单:T型热电偶/热电偶传感器/耐磨热电偶源头厂家精选