学习笔记|Vue入门笔记-五分钟轻松学习Vue实例

1、前言

学习真的是一件很有意义的事情,学习一个感兴趣的方面的知识能让每天的工作也变得轻松,和一群志同道合的小伙伴一起学习进步的速度也是飞速的前进。

2、学习内容

  • 什么是 Vue 实例?

  • 如何创建 Vue 实例;

  • Vue 实例上的属性参数;

  • 如何使用 Vue 开始工作。

3、什么是vue实例

每个 Vue.js 应用的起步都是通过构造函数 Vue 创建一个 Vue 的根实例。

Tips:Vue 实例是通过 Vue 函数传入对应 options 参数创建出的一个实例对象。

4、创建vue实例

Vue 实例的创建是通过 new Vue(options) 来实现的,options 是创建 vue 实例传递的参数。它是一个对象:

//最简单的 options 对象示例:
{
  el: "#app",
  data() {
    return {}
  },
}

下面创建 vue 实例:

var vm = new Vue({
  // 选项
})

一个 Vue 实例,其实正是一个MVVM 模式中所描述的 ViewModel - 因此在文档中经常会使用 vm (ViewModel 的缩写) 这个变量名。

4.1、vue 实例参数

在上面创建的实例中的例子,我们首先使用 Vue 函数创建一个新的 Vue 实例,并在创建实例的时候传入了一个选项对象,接下来我们逐个分析每个对象属性的意义。

4.1.1 el 属性

el 属性表示 Vue 实例要挂载的节点,该属性的值可以是一个 CSS 选择器,也可以是一个 HTMLElement。

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {
    
    { message }}
    </div>
    <div>
      {
    
    { message }}
    </div>
  </body>
  <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
  <script type="text/javascript">
    var vm = new Vue({
      el: '#app',
      data() {
        return {
          message: 'Hello Jum !'
        }
      }
    })
  </script>
</html>

代码解释:

JS 代码:创建了一个 Vue 实例,将它挂载在 id 为 app 的 html 元素节点上。

HTML 代码:定义了 id 为 app 的 DOM 元素。所以我们看到 id 为 app 的节点内 { { message }} 被替换成了 Hello Jum !,而未给定 id 的元素并未受到 Vue 的作用。

同样,我们可以使用 HTMLElement 的方式给 el 赋值:

实例演示

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {
    
    { message }}
    </div>
  </body>
  <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
  <script type="text/javascript">
    var vm = new Vue({
      el: document.getElementById('app'),
      data() {
        return {
          message: 'Hello Jum !'
        }
      }
    })
  </script>
</html>

代码解释:

JS 代码:使用 HTMLElement 的方式给 el 赋值。

4.1.2 data 属性

data 属性表示 Vue 实例中的数据,data接收一个 Object 或者返回一个对象数据的函数 Function。当一个 Vue 实例被创建时,它将 data 对象中的所有的属性加入到Vue 的响应式系统中。当这些属性的值发生改变时,视图也会同时更新。

data 为对象的示例:

实例演示

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {
    
    { message }}
    </div>
  </body>
  <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
  <script type="text/javascript">
    var vm = new Vue({
      el: "#app",
      data: {
        message: 'Hello Jum !'
      }
    })
  </script>
</html>

代码解释:

JS 代码:定义了 data 数据,在页面中可以看到已经显示出 message 的值。当我们打开控制台,修改 vm 上的 message 时,页面会同时做更新。

data 为函数的示例:

var vm = new Vue({
  el: "#app",
  data() {
    return {
        message: 'Hello Jum !'
    }
  }
})
TIPS:*只有当实例被创建时就已经存在于 data 中的属性才是*响应式的。**

也就是说在实例创建之后添加的新的属性不是响应式的,比如:

实例演示

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {
    
    { message }} {
    
    { date }}
    </div>
  </body>
  <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
  <script type="text/javascript">
    var vm = new Vue({
      el: "#app",
      data() {
        return {
          message: 'Hello Jum !'
        }
      }
    })
  </script>
</html>

代码解释:

在 HTML 代码:使用了数据 date 和 message,但是在创建 Vue 实例的时候我们只初始化了 message 而没有 date 的值,当我们在控制台修改实例上的 date 属性时,视图并不会更新。

注意一下,如果 data 中初始化的属性是一个 Object 类型的,那么你需要将 Object 的属性也同时初始化。例如:

实例演示

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {
    
    { message.title }}
    </div>
  </body>
  <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
  <script type="text/javascript">
    var vm = new Vue({
      el: "#app",
      data() {
        return {
          message: {}
        }
      }
    })
  </script>
</html>

代码解释:

在 HTML 代码:使用了数据 message.title,但是在创建 Vue 实例的时候我们只初始化了 message 对象,但是该对象上并没有 title 属性,所以,当我们在控制台上修改 message.title 时,试图不会做更新。

4.2 $set 方法的使用

前面我们提到了,想要在页面中使用数据,首先要在 data 中初始化。有些同学可能并不想在创建实例的时候就初始化这些属性。那么,我们可以利用 Vue 实例的 $set 方法来添加响应式数据,例如:

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {
    
    { message.title }}
    </div>
  </body>
  <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
  <script type="text/javascript">
    var vm = new Vue({
      el: "#app",
      data() {
        return {
          message: {}
        }
      }
    })
  </script>
</html>

代码解释:

HTML 代码:使用了 message.title 的数据,但是,在创建 Vue 实例的时候并没有给 message 初始化 title 属性,所以我们通过 $set 的方式给 message 添加属性。

除了$setVue 实例还暴露了其他有用的实例属性与方法。它们都有前缀 $。这些实例方法我们会在后续的章节中逐步介绍,这里大家只需要对它有个印象。

Vue的实例并不只接收这两个选项,还有诸如methodscomputedwatchprops等选项,这些选项我们在接下来的小节中会逐个详解。在这里,我们只需要先对Vue实例有一个初步的了解就可以了。

5、参考文献

  1. Vue.js 1.0 教程——w3cschool

  1. Vue.js官方中文教程

  1. 深入浅出,学习Vue2日常笔记

猜你喜欢

转载自blog.csdn.net/qq_22903531/article/details/129730616
今日推荐