实验环境

  • npm v10.8.1
  • node v20.16.0
  • vue.js v3.4.37
  • VSCODE 1.88.1

什么是Vue.js

 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue.js 是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。在Vue中,一个核心的概念,就是让用户不再操作DOM元素,让程序员有更多时间关注业务逻辑。

什么是MVVM

  • MVC 是后端的分层开发概念;
  • MVVM是前端视图层的概念,分为了 三部分 Model, View , VM ViewModel
  • Model(模型):代表应用程序的数据和业务逻辑
  • Vie(视图):用户解密,用于数据的显示
  • ViewModel(视图模型):连接Model和view的桥梁,负责将Model的数据转换为View可以显示的格式,并处理View的事件,更新Model

双向数据绑定:Model的数据变化会自动更新View,同时View的变化也会自动更新Model

来自 https://zh.wikipedia.org/wiki/MVVM的图例:

VUE系列之极速入门与实践教程_插值

Vue.js示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 1.引入Vue的依赖-->
    <script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
</head>
<body>
    
    <!--2.创建一个页面元素 div 就是MVVM中的 V-->
    <div id="app">
        <p>{{msg}}</p>
    </div>

    <script>
        // MVVM   M  VM  V
        // 3.创建一个Vue实例
        // 当我们new了一个Vue 对象 其实就是创建了 MVVM 中的 VM调度者
        var vm = new Vue({
            el:"#app" // 表示我们当前创建的Vue对象要控制的页面的区域  关联MVVM中的 V
            ,data:{ // data中的属性,存放的就是 el 中需要用到的数据 
                msg:"Vue的入门案例"
            }
        })
    </script>
</body>
</html>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

VUE系列之极速入门与实践教程_前端_02

常用指令

指令

描述

{{}}

插值表达式

v-cloak

这个命令通常与css配合使用,用于在 Vue 实例加载和编译之前隐藏元素。可以用于解决 插值表达式闪烁的问题

v-text

和插值一样也是使用vue中的变量,但是默认没有闪缩问题,但是会覆盖原本的内容,插值不会

v-html

显示HTML的内容

v-bind

Vue提供的属性绑定机制,缩写是 ‘:’

v-on

Vue提供的事件绑定机制,缩写是:‘@’

插值表达式

在html页面中,我们获取vue中的数据,可以通过插值表达式来获取

<div id="app">
  	<!-- 插值表达式获取vue中的msg信息 -->
    <p>{{ msg }}</p>
  </div>

  <script>
    var vm = new Vue({
      el: '#app', 
      data: {
        msg: 'Vue' 
      }
    })
</script>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

注意,插值表达式有闪烁的问题,就是在刚开始加载页面时候会先闪烁显示{{msg}}而不是具体的内容,不过在最新版本好像修复了,没模拟出来

v-cloak

v-cloak指令可以解决上面插值闪烁的问题,其实也是利用css的一些属性,将内容给隐藏

<style>
    [v-cloak] {
       display: none; 
    }
  </style>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

v-text

v-text会覆盖掉原有的内容,但是 插值表达式 只会替换自己的这个占位符,不会把 整个元素的内容清空

<div id="app">
        <p>*** {{msg}} *** </p>
        <p v-text="msg">*******</p>
    </div>
  • 1.
  • 2.
  • 3.
  • 4.

VUE系列之极速入门与实践教程_前端_03

v-html

从Vue对象中获取的信息如果含有HTML标签的话,可以使用v-html指令来显示

VUE系列之极速入门与实践教程_前端_04

v-bind

v-bind是用于绑定属性的指令,可简写为":",属性中的内容其实写的是js表达式

<div id="app">
        <input type="button" value="提交1" title="提交按钮"><br>
        <input type="button" value="提交2" v-bind:title="title">
        <input type="button" value="提交2" :title="title">
        <!-- v-bind 中,可以写合法的JS表达式-->
       <input type="button" value="提交2" :title="title + ' aaa'">
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                title:"测试title"
            }
        })
    </script>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

v-on

Vue 中提供了 v-on: 事件绑定机制,具体使用

<div id="app">
        <input type="button" value="点击" v-on:click="show">
        <!--缩写用 @-->
        <input type="button" value="点击" @click="show">
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                msg:"<h3>hello vue</h3>"
            },
            methods:{
                show:function(){
                    alert('hello')
                }
            }
        })
    </script>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.