首页 > 其他分享 >vue3 基础-应用app和组件基本概念

vue3 基础-应用app和组件基本概念

时间:2022-08-24 23:34:10浏览次数:63  
标签:vue app vm 视图 vue3 组件 message

这篇主要对 vue 最基础的应用程序 Application 和组件 Components 进行一个简要和直观的认知, 具体要分析的代码如下:

<!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>app和组件基本概念</title>
  <script src="./js/[email protected]"></script>
</head>
<body>
  <div id="root"></div>
</body>
<script>
  // createApp 表示创建一个 Vue 应用, 存储到 app变量中
  // 传入的参数表示, 该应用最外层的组件, 应该如何展示
  // mvvm 设计模式, m->model; v->view视图
  // mv: 数据和视图; vm: 视图和数据
  const app = Vue.createApp({
    data() {
      return {
        message: 'hello world'
      }
    },
    template: `<div>{{message}}</div>`
  })

  // vm 代表的就是 vue 应用的根组件
  const vm = app.mount('#root')
</script>
</html>

首先是这一段:

Vue 创建了一个名为 app 的应用 (存储在app这边变量), 并将这个 app 挂载到 ID 为 'root' 的 DOM 元素上进行管理.

const app = Vue.createApp({});
app.mount('#root')

然后传入的对象参数 data () 和 template 表示这个 app 应用最外层的组件应该怎样展示. 组件之前说过就是页面的一部分, 那这些组件的根组件其实就是 app.mount('#root').

// vm 代表的就是 vue 应用的根组件
const vm = app.mount('#root');
const app = Vue.createApp({
    data () {
        return {
            message: 'hello, ziyin'
        }
    },
    template: `<div>{{message}}</div>`
});
app.mount('#root')

因此从这里就可以感受到 vue 的操作是一种面向数据的编程. 我们定义了数据 message, 也定义了模板 template 后, vue 就会自动将数据和模板关联管理起来, 渲染成我们想要的页面效果. 我们也将这种设计方式成为 mvvm 的设计模式.

  • m: 代表了 model 即数据

  • v: 代表了 view 即可视图

  • vm: 代表了 viewModel 即视图和数据的连接层

上例 m, v 都是我们自己定义的, 但如何关联起来就是 vue 的 vm 组件连接层帮我们自动做的啦.

那如果通过根组件 vm 来获取其他组件或者数据呢, 以这里的 message 为例, 可以这样去获取:

vm.$data.message = 'world'

此时页面就会自动变成 "hello, world" 啦. 就数据和视图是响应式变化的, 即 vue 就是面向数据编程.

标签:vue,app,vm,视图,vue3,组件,message
From: https://www.cnblogs.com/chenjieyouge/p/16622680.html

相关文章

  • vue3.0 多环境配置
    vue3.0多环境配置最常见的多环境配置,就是开发环境配置,和生产环境配置(也就是上线的配置),很多情况下我们开发环境下的域名,和一些配置项,和我们生产模式下的不同,这个时候......
  • ERROR--The dependencies of some of the beans in the application context form a c
    Thedependenciesofsomeofthebeansintheapplicationcontextformacycle场景:启动SpringBoot项目时报循环依赖错误:Thedependenciesofsomeofthebeansin......
  • Sentinel组件简介
    1.概念以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度保护服务的稳定性。2.详细概念理解流量控制:以QPS来讲,如果设置成1的话那么每秒只能请求一次,再次请求就会......
  • OpenFeign组件
    1.作用使得调用其他的微服务像调用方法一样简单,不用在使用ip地址进行调用2.原理  在调用方法时底层会生成代理,将GetMapping中的value与FeignClient中的地址进行拼......
  • vue3父子组件传值defineProps、defineEmits、defineExpose
    一、前言本文介绍父子组件传值defineProps、defineEmits、defineExpose二、语法在scriptsetup中必须使用defineProps和defineEmitsAPI来声明props和emits,它......
  • 实验6:安卓APP首页
    2022年夏季《移动软件开发》实验报告姓名:窦海彤学号:20020007011姓名学号窦海彤,20020007011课程中国海洋大学22夏《移动软件开发》实验名称实验6:安卓app......
  • vue3的状态管理方案pinia/类似于vue2的VueX
    pinia官网:https://pinia.vuejs.org/pinia菠萝挺不错,简单又灵活。1.安装:yarnaddpinia或者 npminstallpinia,全局加--location=global2.注册使用main.jsimport{cr......
  • golang运行grpc示例项目报错:exec: "C:\\Users\\User\\AppData\\Local\\Temp
    golang运行grpc示例项目报错:exec:"C:\Users\User\AppData\Local\Temp\go-build4227870276\b001\exe\server":filedoesnotexist文件找不到,经过排查,发现是编译的文件......
  • ref 获取元素和组件
    父组件:<template><div><divclass="name"ref="oneRef">ref第一个</div><divclass="name"ref="twoRef">ref第2个</div><helloref="ziRef"......
  • Antd日期组件汉化不彻底
    Antd日期组件汉化不彻底最近在项目中使用了vite+antd,按照官网配置汉化:import'../../styles/antd.css';import'../../styles/app.scss';import{memo,ReactN......