VUEX学习笔记(1)-实现计算器(附最详注释)
来源:互联网 发布:js find的用法 编辑:程序博客网 时间:2024/05/17 06:08
知识点:
- css之nth-child(),first-child(),last-child()
例子:nth-child(2){background:#fff} 把父元素的第二个子元素的背景设置为白色; first-child():选择父元素的首个子元素 last-child():选择父元素的最后一个子元素
- eval()
eval()函数可以计算字符串,并执行javascript代码例子:eval("2+3") // 返回 5
- vuex建立store仓库
const store = new Vuex.Store( { state: { result: ' '; enter: ' '},mutations: { //相当于vue实例中的computed计算属性},getters: {},actions: {},modules:{}} );
- this.$store 获取store仓库中的数据
例子:this.$store.state.result 获取state中的常量result的值
- this.$store.commit(‘calculate’,value)
提交一个名为calculate的mutation给store仓库,并将参数一起提交过去。
- vue组件样式
component('组件名',{ template:`里面写模板的内容`, // 引用组件:<组件名></组件名>data:{},computed:{},methods:{},filters:{}...})
计算器实现
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8"> <title></title></head><style type="text/css"> #app{ width: 400px; background:#FFE4E1; } .result{ font-size: 30px; padding:60px; text-align: right; } .enter{ font-size: 20px; margin: 10px auto; padding:0 60px 20px 0; text-align: right; } .template{ background:#FFF8DC; width:100px; height:120px; display: inline-block; font-size: 30px; box-sizing: border-box; text-align: center; vertical-align: middle; line-height:120px; color:#7A378B; } .template:nth-child(1){ color:red; } .template:last-child{ background:#C6E2FF; }</style><body> <div id="app"> <div class="result">{{result}}</div> <div class="enter">{{enter}}</div> <div class="key"> <div class="list"> <keybord v-for="item in keys" v-bind:value="item"></keybord> </div> </div> </div> <script type="text/javascript" src="./vue.min.js"></script> <script type="text/javascript" src="./vuex.min.js"></script> <script type="text/javascript"> //建立仓库store const store = new Vuex.Store({ //这里注意V和S都要大写 state: { result: ' ', //result变量用来存 结果 enter: ' ' // enter变量用来存 输入的值 }, mutations: { calculate(state, value) { if(value === '='){ state.result = eval(state.enter); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。 }else if(value === 'clear'){ state.result = state.enter =' '; }else{ state.enter += value; } } } }); //建立keybord组件 Vue.component('keybord',{ props:['value'], //从dom中的<keybord></keybord>组件中传过来value属性的值; template: `<div class="template" v-on:click="getkeybordvalue(value)"> {{value}} </div>`, // 把从父组件传过来的value值作为参数传给click事件; methods: { getkeybordvalue(value) { var value = value; this.$store.commit('calculate',value); // 在Vuex中不能任意修改应用层的状态,要修改,就得用它提供的唯一途径:通过commit提交mutations。 } } }); //实例化vue new Vue({ el:"#app" , //挂载点 data:{ keys: [ 'clear','+','-','*', '7','8','9','/', '4','5','6','0', '1','2','3','=' ] }, store, computed: { // 计算属性 result() { return this.$store.state.result; //this指向的是实例化中的store //this.$store.state.resule访问vuex中store仓库中的state中的常量; }, enter() { return this.$store.state.enter; } } }); </script></body></html>
阅读全文
0 0
- VUEX学习笔记(1)-实现计算器(附最详注释)
- Vuex学习笔记
- vuex学习实践笔记
- Vuex学习笔记
- vuex学习实践笔记
- vuex学习实践笔记
- vuex学习笔记
- Vuex 学习笔记
- vue之vue-router vuex学习笔记
- 基于vue-cli的vuex学习笔记
- Vuex 笔记
- vuex笔记
- VueX笔记
- Vue学习(1)vue模板-vuex简介
- vuex学习
- 学习vuex
- Vue.js学习系列二 —— vuex学习实践笔记(附DEMO)
- Vue.js学习系列二 —— vuex学习实践笔记(附DEMO)
- cache的write through和write back
- 一个简单的前端获取手机验证码实现
- SDUT-1524 回文串判定
- 【性能测试】-Loadrunner脚本调试和回放常见问题及解决方案
- 编写还可以的php 图片上传类代码
- VUEX学习笔记(1)-实现计算器(附最详注释)
- Tinker热修复 及walle多渠道打包流程
- Oracle数据库减少redo日志产生方式
- 修复官方duilib-移动鼠标到Button不能变成手型
- NDK Cmake 爬坑
- iOS 绘制简单图形---UIBezierPath篇
- 一些自己常用的adb命令
- SDUT-1525 字符统计2
- squirrel-foundation状态机的使用细节