5.24作业

目录

1.Vuex和单纯的全局对象有什么区别

3.写出nextTick的作用,以及用法

4.ref/$refs通信方式与获取dom

5.什么是多个组件共享状态


1.Vuex和单纯的全局对象有什么区别?


        Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会得到高效更新。不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解应用。

2.vuex是什么?怎么使用?哪种功能场景使用它


        vuex 就是一个仓库,仓库里放了很多对象。
        state 存放的是数据状态,不可以直接修改里面的数据。
        getters类似vue的计算属性,主要用来过滤一些数据。
        mutations:存放的是动态修改Vuex的state中保存的数据状态的方法。
        actions:保存的触发mutations中方法的方法,可以理解为通过将mutations里面处里数据的方法变成可异步的处理数据的方法,简单的说就是异步操作数据。
        一般什么样的数据会放在 State 中呢?
        目前主要有两种数据会使用 vuex 进行管理

                 1、组件之间全局共享的数据

                2、通过后端异步请求的数据 比如做加入购物车、登录状态等都可以使用Vuex来管理数据状态
        怎么使用Vuex?

                 在main.js引入store,注入。新建了一个目录store,… export
        场景有:单页应用中,组件之间的状态、音乐播放、登录状态、加入购物车


3.写出nextTick的作用,以及用法


        作用:获取数据更新之后的dom元素
        用法:
将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。
new Vue({
  methods: {
    // ...
    example: function () {
      // 修改数据
      this.message = 'changed'
      // DOM 还没有更新
      this.$nextTick(function () {
        // DOM 现在更新了
        // `this` 绑定到当前实例
        this.doSomethingElse()
      })
    }
  }
})


4.ref/$refs通信方式与获取dom


           .ref可以作为父子组件通信的一种方式,通信形式为父组件引用子组件。
          特殊属性ref
                    1.在vue中,组件或原生标签上的ref属性用于注册引用信息。
                    2.通过ref我们可以获取
                        (1)原生标签的dom对象
                        (2)组件实例,
                    3.通过获取的原生标签的dom对象,我们可以使用
                        (1)dom对象上的属性
                        (2)dom对象的方法
                    4.通过组件实例我们可以使用组件的
                        (1)数据(定义的data,props,computed等等)
                        (2)方法。
                    5.组件实例属性$refs
                           a.每一个组件都有一个实例属性$refs,用于获取该组件下所有注册的引用信息
                           b.通过获取的引用,父组件可以直接访问该引用子组件的数据和方法,从而实现通信。
            注意事项
                        1.$refs 只会在组件渲染完成之后生效,且有时就算写在mounted生命周期里都访问不到

5.什么是多个组件共享状态


        多个视图依赖于同一状态。
        来自不同视图的行为需要变更同一状态。

你可能感兴趣的:(每日作业,vue.js,javascript,前端)