Vue学习-猜大小游戏

今天看了一会儿Vue文档,写一个猜大小的小游戏,大概这个丑样:
欢迎关注我的公众号:zx94_11


长这样

需求

  1. 按下开始之后出现输入框
  2. 输入数字自动与一个1-100之间的数字比较
  3. 数字一致后,出现「重新开始」按钮,输入框灰显
  4. 每次输入非重复内容都会被记录

Html

head

头部导入一下Vue.js代码

<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="index.css">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <title>猜大小</title>
</head>

body

主体部分包含

  • 一个<h1>标签的标题
  • 一个交互信息
  • 开始/重新开始按钮
  • 游戏记录
<div id="guess">
    <h1>猜大小游戏</h1>
    {{info}}
    <br>
    <input v-model="num1" v-show="input_status" :disabled="isdisabled">
    <button @click="playGame" v-show="hidden_status">
        {{message}}
    </button>
    <ul>
        <li v-for="info_ in info_list">
            第{{info_.id}}次猜数字,输入了<span>「{{info_.num}}」</span>,提示:{{info_.text}}
        </li>
    </ul>
</div>
<script src="index.js"></script>
  • {{info}}{{xxx}}的部分会被js中的内容渲染

  • v-model="num1"表示输入框关联一下num1

  • v-show决定元素是否显示

  • :xxxv-bind:的简写

    • :disabled表示的是可编辑状态由变量isdisabled决定
  • @xxxv-on的简写

    • @click="playGame"表示,鼠标点击操作会触发playGame函数
  • v-for是循环增加无序标签li,答应游戏日志

Css

看页面就知道,css瞎写的

html, body {
    margin: 5px;
    padding: 0;
}

JavaScript

  • data中的部分都可以在html部分使用{{xxx}}渲染出来
  • watch是一个监听,每次输入框发生改变都会去调用changed_num()函数
  • created是在首次运行的时候执行的,会给一个给定的1-100内的数字
  • methods存放的全部的函数
    • changed_num,主要的游戏结果的判断,并会把日志加入到info_list,然后被展示到无序序列里面,有几种状态:
      • 正确
      • 输入为空
      • 输入大于100
      • 输入的数字比要猜的数字大
      • 输入的数字比要猜的数字小
      • 输入非整数
    • 通过内容的遍历(this.num1 == item.num),只有没有输入过的数字的信息,才会被打印到日志中
  • 重新开始游戏
    • 把几个状态都重新刷新一下,并生成一个新的数字
var item = 0;
var guess_num = new Vue({
        el: "#guess",
        data: {
            num: '',
            num1: '',
            info: "请按「开始游戏」开始猜数字游戏",
            hidden_status: true,
            input_status: false,
            message: '开始',
            isdisabled: false,
            info_list: []
        },
        watch: {
            num1: function (newNum1, oldNum1) {
                this.info = '开始比较';
                guess_num.changed_num()
            }
        },
        created: function () {
            this.num = Math.floor(Math.random() * 100 + 1);
        },
        methods: {
            changed_num: function () {
                var regNeg = /[0-9]*/;
                let flag = true;
                if (this.num1 == this.num) {
                    this.info = '你猜对了!';
                    this.hidden_status = true;
                    this.isdisabled = true;
                } else if (this.num1 == '') {
                    flag = false;
                    this.info = '请输入一个小于100整数';
                } else if (this.num1 > 100) {
                    this.info = '请输入一个小于100的值';
                } else if (this.num1 > this.num) {
                    this.info = '你输入的数字比要猜的数字大';
                } else if (!regNeg.test(self.num1)) {
                    this.info = '请输入一个整数数字';
                } else {
                    this.info = '你输入的数字比要猜的数字小';
                }
                this.info_list.forEach(item => {
                    if (this.num1 == item.num) {
                        flag = false
                    }
                });
                if (flag) {
                    item++;
                    this.info_list.push({id: item, num: this.num1, text: this.info});
                }

            },
            playGame: function () {
                this.message = "重新开始";
                this.hidden_status = false;
                this.input_status = true;
                this.isdisabled = false;
                this.num1 = '';
                item = 0;
                self.info = '请输入数字';
                this.info_list = [];
                this.num = Math.floor(Math.random() * 100 + 1);
            }
        },
    })
;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352