vue3笔记

vue3笔记

vue3官网
尚硅谷视频
黑马视频


vue3笔记_第1张图片


## vue3的main.js
1.vue3
import { createApp } from 'vue' // 引入createApp方法
import App from './App.vue' // 引入App根组件
createApp(App).mount('#app')  // 创建一个 Vue 实例,并将其挂载到 id 为 "app" 的 DOM 元素上

2.vue2
import Vue from 'vue' // 引入vue
import App from './App.vue' // 引入App根组件
// 创建一个 Vue 实例,并在创建时指定根组件的渲染函数,然后将该实例挂载到 id 为 "app" 的 DOM 元素上
new Vue({
  render: h => h(App),
}).$mount('#app')

3.render函数
render: function (createElement) {
    return createElement(App);
}
↓ 对象的增强写法

render (createElement) {
    return createElement(App);
}
↓ createElement 简写成 h
render (h){
    return h(App);
}
↓ 箭头函数
render: h => h(App);

 createElement 函数是 Vue.js 的渲染函数中常用的一个函数,用于创建虚拟 DOM 元素,要有return返回值。
/ createElement 函数的第一个参数:标签名或组件选项,可以是 HTML 标签名字符串,表示创建普通的 HTML 元素,也可以是组件的选项对象,表示创建一个组件实例。/

import App from './App'
new Vue({
    el: '#app',
    render: h => h(App)
})
↓ 等价与
import App from './App'
new Vue({
    el: '#app',
    template: '',
    components: {
 App 
}
})
上面两种的效果是一样的,可以看出 h(App)函数 的作用是:使用App作为这个Vue实例的template,同时一并了注册App组件;

vue3笔记_第2张图片
Vue3 模板结构可以不使用根标签

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <HelloWorld msg="Welcome to Your Vue.js App"/>
  <div> hello vue3 </div>
</template>

Vue3 引入组件后,可以再模板中直接使用

<template>
  <ReactiveDemo />
  <ComputedDemo />
</template>

<script setup>
import ReactiveDemo from '@/components/ReactiveDemo.vue'
import ComputedDemo from '@/components/ComputedDemo.vue'
</script>

Composition API (组合式api)

选项式API和组合式API的区别:

1.vue2 选项式API(Options API)
<script>
export default {
  // data() 返回的属性将会成为响应式的状态,并且暴露在this上
  data() {
    return {
      count: 0
    }
  },
 
  // methods 是一些用来更改状态与触发更新的函数
,它们可以在模板中作为事件监听器绑定
  methods: {
    increment() {
      this.count++
    }
  },
 
  // 生命周期钩子会在组件生命周期的各个不同阶段被调用

  mounted() {
    console.log('通常项目中初始化在这里调接口')
  }
}
</script>
 
 
2.vue3 组合式API(Composition API)
<script>
import { ref, computed, onMounted } from 'vue'
export default {
  setup () {
    // 定义变量
    const count = ref(1)
    // 定义计算属性
    const doubleCount = computed(() => {
      return count.value * 2
    })
    // 定义方法
    const changeCount = () => {
      count.value = 100
    }
    // 生命周期函数
    onMounted(() => {
      console.log(count.value, 'onMounted')
    })
    // 统一将变量和方法等暴露出去
    return {
      count, doubleCount, changeCount
    }
  },
}
</script>
  • 选项式 API可以用包含多个选项的对象来描述组件的逻辑,例如 data、methods 和 mounted。
  • 选项所定义的属性都会暴露在函数内部的 this 上,它会指向当前的组件实例;
  • 选项式 API 以“组件实例”的概念为中心 (即 this);
  • 组合式 API可以使用导入的 API 函数来描述组件逻辑;

你可能感兴趣的:(Vue,笔记,vue.js,前端,vue)