吴志勇的博客 吴志勇的博客
  • h5

    • HTML5&CSS3
  • scss

    • css预处理语言
  • JavaScript

    • JavaScript教程
    • Ajax
    • ES6教程
    • NodeJS
    • Typescript
  • 框架

    • Jquery
    • VUE
    • React
  • Swing专题
  • java基础
  • javaweb
  • 框架
  • 数据库
  • netty
  • 设计模式
  • 微服务及架构
  • 云原生
  • maven
  • 单元测试
工具
我的
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

吴志勇

......
  • h5

    • HTML5&CSS3
  • scss

    • css预处理语言
  • JavaScript

    • JavaScript教程
    • Ajax
    • ES6教程
    • NodeJS
    • Typescript
  • 框架

    • Jquery
    • VUE
    • React
  • Swing专题
  • java基础
  • javaweb
  • 框架
  • 数据库
  • netty
  • 设计模式
  • 微服务及架构
  • 云原生
  • maven
  • 单元测试
工具
我的
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML5&CSS3

  • CSS预处理语言

  • JavaScript

  • nodejs

  • webpack

  • VUE

    • vue2

      • 01 【Vue简介 初识Vue 模板语法和数据绑定】
      • 02 【el和data的两种写法 MVVM模型】
        • 1.el和data的两种写法
        • 2.MVVM模型
      • 03 【数据代理 事件处理】
      • 04 【计算属性 侦听属性】
      • 05 【绑定样式 条件渲染 列表渲染】
      • 06 【Vue数据监视 v-model双向绑定】
      • 07 【内置指令 自定义指令】
      • 08 【生命周期 组件】
      • 09 【CLI 初始化脚手架 Vue零碎的一些知识】
      • 10 【组件编码流程 组件自定义事件 全局事件总线】
      • 11 【组件通信】
      • 12 【nextTick 过渡与动画】
      • 13 【代理配置 插槽】
      • 14 【Vuex】
      • 15 【Vue-Router】
      • 16 【打包 图片懒加载】
    • vue3

  • react

  • Typescript
  • 前端
  • VUE
  • vue2
wuzhiyong
2024-09-22

02 【el和data的两种写法 MVVM模型】

# 02 【el和data的两种写法 MVVM模型】

# 1.el和data的两种写法

el有2种写法

  • 创建Vue实例对象的时候配置el属性

  • 先创建Vue实例,随后再通过vm.$mount('#root')指定el的值

data有2种写法

  • 对象式:data: { }
  • 函数式:data() { return { } }
  • 如何选择:目前哪种写法都可以,以后到组件时,data必须使用函数,否则会报错 一个重要的原则
  • 由Vue管理的函数,一定不要写箭头函数,否则 this 就不再是Vue实例了
  <body>
    <div id="root">
      <h1>你好,{{name}}</h1>
    </div>
  </body>
  <script type="text/javascript">
    // el的两种写法
    // const v = new Vue({
    // 	//el:'#root', // 第一种写法
    // 	data: {
    // 		name:'dselegent'
    // 	}
    // })
    // console.log(v)
    // v.$mount('#root') // 第二种写法

    // data的两种写法
    new Vue({
      el: '#root',
      // data的第一种写法:对象式
      // data:{
      // 	name:'dselegent'
      // }

      //data的第二种写法:函数式
      data() {
        console.log('@@@', this) // 此处的this是Vue实例对象
        return {
          name: 'dselegent'
        }
      }
    })
  </script>
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
31
32
33

# 2.MVVM模型

image-20220627114527315

MVVM模型

  • M:模型 Model,data中的数据
  • V:视图 View,模板代码
  • VM:视图模型 ViewModel,Vue实例(相当于数据和页面的连接桥梁)

观察发现

  • data中所有的属性,最后都出现在了vm身上
  • vm身上所有的属性 及Vue原型身上所有的属性,在 Vue模板中都可以直接使用
    <div id="root">
        <h2>名称:{{ name }}</h2>
        <h2>战队:{{ team }}</h2>
        <h2>测试:{{ $options }}</h2>
    </div>

    <script>
        Vue.config.productionTip = false
        new Vue({
            el: '#root',
            data: { 
                name: 'uzi',
                team: 'RNG'
            }
        })
    </script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

image-20220627114825918

上次更新: 2024-09-30 01:09:25

← 01 【Vue简介 初识Vue 模板语法和数据绑定】 03 【数据代理 事件处理】→

Copyright © 2020-2025 wuzhiyong
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式