下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 15 | 常用高级特性provide/inject
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

Vue开发实战

共53讲 · 53课时,约500分钟
10597
免费
01 | 课程介绍
免费
02 | Vue简介
免费
03 | 内容综述
免费
04 | 第一个Vue程序
免费
05 | 组件基础及组件注册
免费
06 | Vue组件的核心概念:事件
免费
07 | Vue组件的核心概:插槽
08 | 理解单文件组件
09 | 双向绑定和单向数据流不冲...
10 | 理解虚拟DOM及key属性的...
11 | 如何触发组件的更新
12 | 合理应用计算属性和侦听器
13 | 生命周期的应用场景和函数...
14 | 指令的本质是什么
15 | 常用高级特性provide/inj...
16 | 如何优雅地获取跨层级组件...
17 | template和JSX的对比以及...
18 | 为什么需要Vuex
19 | 如何在Vue中使用Vuex
20 | Vuex核心概念及底层原理
21 | Vuex最佳实践
22 | Vue Router的使用场景
23 | 选择何种模式的路由及底层...
24 | Nuxt解决了哪些问题?
25 | Nuxt核心原理是什么?
26 | UI组件库对比:Element U...
27 | 提升开发效率和体验的常用...
28 | 单元测试的重要性及其使用
29 | 生态篇习题解答(上)
30 | 生态篇习题解答(下)
31 | Ant Design Pro介绍
32 | 使用Vue CLI 3快速创建...
33 | 如何自定义Webpack和Babel...
34 | 如何设计一个高扩展性的路...
35 | 实现一个可动态改变的页面...
36 | 如何将菜单和路由结合
37 | 如何使用路由管理用户权限
38 | 更加精细化的权限设计(权...
39 | 如何在组件中使用ECharts...
40 | 如何高效地使用Mock数据进...
41 | 如何与服务端进行交互(Ax...
42 | 创建一个普通表单
43 | 初始数据、自动校验、动态...
44 | 创建一个分步表单
45 | 自己封装一个支持自动校验...
46 | 如何管理系统中使用的图标
47 | 如何定制主题及动态切换主...
48 | 如何做好国际化
49 | 如何高效地构建打包发布
50 | 如何构建可交互的组件文档
51 | 如何做好组件的单元测试
52 | 如何发布组件到npm
53 | GitHub相关生态应用(持续...

精选留言(22)

  • M
    2019-03-25
    还想问一个问题,这个provide和inject,官方说建议provide 和 inject 主要为高阶插件/组件库提供用例。并不推荐直接用于应用程序代码中。这是为什么,这么好的东西我们应用到我们的业务场景中会有怎样的弊端呢?

    作者回复: 业务开发可以优先考虑vuex提供全局唯一store, provide inject 会有一个类似冒泡的特性,数据源有可能在中间被”“打断”,甚至是有可能被组件库中的组件打断,或者打断组件库中的provide,不利于维护
       

    10
  • 2019-04-08
    this.color不是在data中定义了吗?为什么不是响应式的?

    作者回复: Provide提供的数据默认都不是响应式的 这个官方文档有说明 可以在文档中直接搜索provide这个关键字

    4
  • 2019-07-13
    老师,event Bus 和provide/inject有啥本质的区别
    2
  • 2019-04-12
    老师,还是有点不理解 this.color 在 data 中已经声明了,为什么不是非响应的。能不能解释一下,百度了好多也没有想要的答案。。希望老师看到

    作者回复: this.color是响应式的,但通过provide提供给其他组件的color就不是响应式了

    2
  • 2019-03-29
    为什么我用作者提供的Demo,在不取消注释的情况下点击A节点改变颜色,它怎么照样可以改变颜色,不是不应该改变颜色吗?按道理应该theme:this的情况下才会改变颜色。不解中。。。。。。

    作者回复: 如果你是运行的demo,注意看1.8/index.vue 中具体使用的哪个组件,ChildrenA 还是 ChildrenA_a,这个在讲解习题的时候代码被同步改成了习题的答案demo。
    官方解释如下:https://cn.vuejs.org/v2/api/#provide-inject

    2
  • 2019-04-24
    使用Vue.observable,E组件想改变color,需要将自组件代码修改为:
          handleClick(){
                if(this.theme.color) {
                    this.theme.color = 'green'
                }
            }
    @M留言中的不对。。。
    展开
    1
  • 2019-03-21
    感觉有点像mobx

    class store {
        @observable msg = "hello world"
        @action change() {
               this.msg = "hello vue"
          }

    在需要用到状态的组件内
    @inject('store')
    @observer
    展开
    1
  • 2019-11-11
    为什么说provide/inject 破坏了单向数据流?
  • 2019-11-07
    这个有点意思,又学到了,可能近期会有需要
  • 2019-09-23
    #5W2H#
    What:vue的provider和inject
    Why:用于不同的DOM节点之间进行通讯
    Who:null
    Where:null
    When:null
    How:bull
    How much/how good/how bad:null
    展开
  • 2019-07-29
    我自己试了一下,我在父组件给最底层的子组件传值,子组件在接受到以后先要改变传进来的值,为什么不能改呢?请老师给解答一下
  • 2019-07-12
    老师我有个问题,就是我在用antd的时候菜单栏递归报这种错误
    vue.min.js:6 TypeError: Cannot read property 'isRootMenu' of undefined
        at a.render (SubMenu.jsx:500)
  • 2019-05-05
    组件间的通信,项目不是特别复杂的情况下不采用vuex话完全可以用eventbus吧。provide局限性太大。
  • $ git clone https://github.com/geektime-geekbang/geektime-vue-1.git
    Cloning into 'geektime-vue-1'...
    remote: Enumerating objects: 334, done.
    error: RPC failed; curl 18 transfer closed with outstanding read data remaining
    fatal: The remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed
     老师,我在 git 上拉代码,总是报错
    展开

    作者回复: 这个是个人网络问题吧

  • 2019-04-28
    打卡三刷

    作者回复: 666

  • 2019-04-18
    感觉就是模仿的context

    作者回复: 解决的都是同类问题

  • 2019-04-15
    老师,不明白,为啥this.color为字符串时,provide不是响应式的呢?
  • 2019-04-12
    我第一次理解这个概念,很棒
  • 2019-04-07
    我的意思是用了observe或this不用changeColor直接改变颜色

    作者回复: 你是说直接在子组件修改?
    不要再子组件直接修改 还是那句话: 单向数据流 如果要改动,要通过“最顶层”去修改

  • 2019-04-07
    当没有注入this对象的时候(即没有changeColor方法),可以直接在子组件改变theme的颜色也是可以做到关联颜色改变的。

    作者回复: 并不可以的,如果你是运行的demo,注意看1.8/index.vue 中具体使用的哪个组件,ChildrenA 还是 ChildrenA_a,这个在讲解习题的时候代码被同步改成了习题的答案demo。
    官方解释如下:https://cn.vuejs.org/v2/api/#provide-inject