vue基础

289 阅读2分钟

框架和库的区别

  • 框架:是一套完整的解决方案,对项目侵入性大,项目如果需要更换框架,则需要重新构架整个项目。

node中的express;

  • 库(插件):提供某一个小功能,对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换都弄其他库实现需求。
  1. 从Juery 切换到 Zepro
  2. 从EJS 切换到 art-template

MVC和MVVM图解

QQ图片20211212225238.jpg

Vue 指令v-cloak,v-text,v-html

  • 使用 v-cloak 能够解决 差值表达式闪烁的问题
  • 默认 v-text是没有闪烁问题的
  • v-text 会覆盖元素中原本的内容 ,但是 插值表达式 只会替换自己的占位符,不会把 整个元素的内容清空
  • v-html会覆盖元素中原本的内容 ,他会把内容当成html内容显示

v-bind指令

  • v-bind: 是 vue中提供的用于绑定属性的指令
  • 注意:v-bind: 指令可以被简写成 :要绑定的属性
  • v-bind 中,可以写成合法的JS 表达式

v-on指令

  • v-on缩写是 @
  • vue中提供了 v-on 绑定事件机制
  • 浏览器中常见的事件都可以在v-on后定义
 methods:{  //这个对象methods属性中定义了当前Vue实例所有可用的方法
               show:function(){
                   alert('Hello')
               }
           }

跑马灯效果

// 1. 给【浪起来】按钮,添加一个点击事件 v-on @

// 2. 在按钮的事件处理函数中,协相关的业务逻辑代码:拿到 msg 字符串,然后 调用 字符串的 substring 来进行字符串的截取操作,把 第一个字符截取出来,放到最后一个位置即可;

// 3. 为了实现点击按钮,自动截取的功能,需要把 2 步骤的代码,放到一个定时器中去; HTML代码:

 <!-- 2.创建一个要控制住的区域 -->
    <div id="app">
        <input type="button" value="浪起来" @click="lang">
        <input type="button" value="低调" @click="stop">
        <h4>{{msg}}</h4>
    </div>

vue代码:

// 注意:在vm实例中,如果想要获取  data 上的数据,或者想调用 methods 中的方法,必须通过this. 数据属性名  或 this.方法名 来进行访问,这里的 this,就是我们 new 出来的 vm 实例
        var vm = new Vue({
            el: '#app',
            data: {
                msg: '猥琐发育,别浪~~',
               IntervalId:null   //在data上定义  定时器  ID
            },
            methods: {
                lang() {
                    //    console.log(this.msg)
                    // this

                    if(this.IntervalId != null)  return;
                    this.IntervalId = setInterval( () => {
                        // 获取到头的第一个字符
                        var start = this.msg.substring(0, 1)
                        //获取到 后面的所有字符
                        var end = this.msg.substring(1)
                        //  重新拼接到新的字符串,并赋值给 this.msg
                        this.msg = end + start
                    }, 300)

                    // 注意: vue 实例,会监听到自己身上  data中  所有数据的改变,只要数据一发生变化,就会自动把最新的数据,从 data上同步到页面中去;【好处:程序员只需要关心数据,不需要考虑如何重新渲染DOM页面】
                },
            stop(){   //停止定时器
                clearInterval(this.IntervalId)
                // 每当清除了定时器之后,需要重新把  intervalId  置为 null
                this.IntervalId=null;
            }
        }
        });