• 跑马灯效果


    知识点:

    1,在vm实例中 要想要获取data上的数据 或者想要调用methods中的方法,必须通过this.数据名 或者 this.方法名进行访问 这里的this就表示我们new出来的vm实例对象

    2,vm实例会监听自己身上data中所有数据的改变 只要数据发生改变 就会自动把最新的数据从data上同步到页面中去

    好处:程序员只关系数据 不需要考虑如何重新渲染dom页面

    3,箭头函数解决this指向问题 让外部this和函数体内this指向保持一致

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <title>Title</title>
    </head>
    <body>
    <div id="app">
        <input type="button" value="开始" @click="lang">
        <input type="button" value="停止" @click="stop">
        <h4>{{msg}}</h4>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: '跑马灯跑起来',
                intervalId: null
            },
            methods: {
                lang: function(){
                    // 注意:在vm实例中 如果想要获取data上的数据 或者想要调用methods中的方法
                    // 必须通过this.数据名 或者 this.方法名进行访问 这里的this就表示我们new出来的vm实例对象
                    console.log(this.msg)
                    if (this.intervalId != null) return;
    
                    // var _this = this
                    // setInterval(function(){
                    //     // 第一步
                    //     var start = this.msg.substring(0, 1)
                    //     var end = this.msg.substring(1)
                    //     // vm实例会监听自己身上data中所有数据的改变
                    //     // 只要数据发生改变 就会自动把最新的数据从data上同步到页面中去
                    //     //好处:程序员只关系数据 不需要考虑如何重新渲染dom页面
                    //     this.msg = end + start
                    // }, 400)
    
                    //箭头函数解决this指向问题 让外部this和函数体内this指向保持一致
                    this.intervalId = setInterval( () => {
                        // 第一步
                        var start = this.msg.substring(0, 1)
                        var end = this.msg.substring(1)
                        // vm实例会监听自己身上data中所有数据的改变
                        // 只要数据发生改变 就会自动把最新的数据从data上同步到页面中去
                        //好处:程序员只关系数据 不需要考虑如何重新渲染dom页面
                        this.msg = end + start
                    }, 400)
                },
                // 停止定时器
                stop(){
                    clearInterval(this.intervalId)
                    // 每当清除定时器之后 需要重新把interid置为null
                    this.intervalId = null
                }
            }
        })
        // 分析
        // 1,给【点击】按钮 绑定一个点击事件 v-on
        // 2,在按钮的事件处理函数中,写业务代码 拿到msg字符串 然后调用字符串的substring进行字符串截取
        // 把 第一个字符截取出来 放到最后一个位置即可
        // 3,为了实现点击按钮 自动截取功能需要把2中的代码放到一个定时器中
    </script>
    </body>
    </html>
  • 相关阅读:
    Vue 创建项目
    Vue组件之间的传参
    Vue自定义组件
    Python开发之路
    爬虫
    手撸系列
    Django从入门到不会放弃
    前端
    day29 TCP的三次握手 TCP的四次挥手 基于TCP的socket
    day28 客户端服务端架构介绍
  • 原文地址:https://www.cnblogs.com/ella-li/p/14586912.html
Copyright © 2020-2023  润新知