• 三、组件与数据交互


    一、组件基础

    1、单文件组件

    第一步:引入组件 import ComponentTest from './components/ComponentTest.vue'
    第二步:挂载组件 components: {ComponentTest }
    第三步:显示组件 
    
    • 1
    • 2
    • 3
    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    
    
      
    
      
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    二、Props组件交互(向下传递)

    1、Props组件交互

    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    
    
      
    
    
    
    
    
    • 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

    在这里插入图片描述

    三、自定义事件组件交互(向上传递)

    1、自定义事件组件交互

    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    
    
      
    
    
    
    
    
    • 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

    在这里插入图片描述

    四、组件生命周期

    1、组件生命周期

    在这里插入图片描述
    创建:brforeCreate、created
    渲染:brforeMount、mounted
    更新:brforeUpdate、updated
    卸载:brforeUnmount、unmounted

    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    
    
      
    
    
    
    
    
    • 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
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    在这里插入图片描述

    五、vuex(全局数据管理)

    1、创建vuex项目

    Vue CLI v5.0.8
    ? Please pick a preset: Manually select features
    ? Check the features needed for your project: (Press  to select,  to toggle all,  to invert selection, and  to 
    proceed)
     (*) Babel
     ( ) TypeScript
     (*) Progressive Web App (PWA) Support
     ( ) Router
    >(*) Vuex	//vuex选项
     ( ) CSS Pre-processors
     ( ) Linter / Formatter
     ( ) Unit Testing
     ( ) E2E Testing
    

    2、使用方法

    (1)State(存储数据)

    // vue-vuex\src\store\index.js
    import { createStore } from 'vuex'
    
    export default createStore({
      // 所有数据都存放在这里
      state: {
        counter: 100
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    方式一

    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    方式二

    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    (2)Getter(获取数据)

    对vuex中的数据进行过滤
    
    • 1
    // vue-vuex\src\store\index.js
    import { createStore } from 'vuex'
    
    export default createStore({
      // 所有数据都存放在这里
      state: {
        counter: 100
      },
      getters: {
        getCounter(state) {
          return state.counter > 0 ? state.counter : "counter的值小于0"
        }
      },
      mutations: {
      },
      actions: {
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    方式一

    
    
    
    
    
    
    
    • 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

    方式二

    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    (3)Mutation(提交修改数据)

    // vue-vuex\src\store\index.js
    import { createStore } from 'vuex'
    
    export default createStore({
      // 所有数据都存放在这里
      state: {
        counter: 100
      },
      getters: {
        getCounter(state) {
          return state.counter > 0 ? state.counter : "counter数据异常"
        }
      },
      mutations: {
        addCounter(state, num) {
          state.counter += num;
        }
      },
      actions: {
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    方法一

    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    方法二

    
    
    
    
    
    
    • 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

    (4)Action

    action提交给mutation,包含异步操作
    
    • 1
    // vue-vuex\src\store\index.js
    import { createStore } from 'vuex'
    
    export default createStore({
      // 所有数据都存放在这里
      state: {
        counter: 100
      },
      getters: {
        getCounter(state) {
          return state.counter > 0 ? state.counter : "counter数据异常"
        }
      },
      mutations: {
        addCounter(state, num) {
          state.counter += num;
        }
      },
      actions: { //为异步操作准备
        asyncAddCounter({ commit }) {
          commit("addCounter", 30);
        }
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    方法一

    
    
    
    
    
    
    • 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

    方式二

    
    
    
    
    
    
    • 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
  • 相关阅读:
    redis雪崩问题
    R语言使用原生包(基础导入包、graphics)中的boxplot函数可视化箱图(box plot)
    常见音频编码格式解析
    JAVA 实用开源工具集持续梳理中......
    外卖霸王餐系统 支持小程序,分站合作
    智慧社区管理云平台 - 数字孪生大屏三维可视化 - 随手拍小程序 - 倾斜摄影分层分户
    java毕业生设计新城街道社区的健康档案管理平台计算机源码+系统+mysql+调试部署+lw
    新知实验室_初探腾讯云音视频
    ⑩ vue新特性
    内功心法:深入研究整型数(上)
  • 原文地址:https://blog.csdn.net/liutit/article/details/133962346