Vue之组件化开发
一、组件化开发思想
一块一块的,标准,分治,重用,组合;
跟之前的布局思想差不多吧,页面是一个一个盒子组成的,然后这个盒子的代码单独去写
组件化规范:Web Components但是有浏览器兼容问题;Web Components通过创建封装好功能的定制元素解决上述问题,Vue部分实现了上述规范;
二、Vue调试工具用法
组件最终也会渲染成DOM,为了区别层次关系可以使用Vue调试工具,
首先需要安装Vue-Devtools参考但是在参考这个方法安装的时候出现了错误
查找资料以后安装旧版本5.1.1
参考2
安装5.1.1之后成功
三、组件注册方式
1. 组件注册方式
组件就是把一个功能封装成可以重复利用的代码,比如下面的按钮,可以直接复制使用实现一样的效果;
2. 组件注册注意事项
- data必须是一个函数,使用函数形成了一个闭包的坏境保证每个实例有一份独立的数据;
- 组件模板内容必须是单个根元素,不能有兄弟节点,但是可以是一个父亲包含几个儿子;
- 组件模板内容可以是模板字符串,当内容过多的时候使用模板字符串结构看起来更加清晰;
- 组件命名方式如果使用驼峰式命名组件,那么在使用组件的时候,只能在字符串模板中用驼峰的方式使用组件,但是
在普通的标签模板中,必须使用短横线的方式使用组件在定义的时候用的HelloWorld
使用的时候是hello-world
3. 局部组件注册方式
局部组件只能在注册它的父组件中使用,自定义指令也是这样的,局部自定义指令只能在注册它的范围中应用;
四、组件间的数据交互方式
1. 父组件向子组件传值
- 组件内部通过props接收传递过来的值,子组件通过props来接收父组件传过来的值
- 父组件通过属性将值传给子组件
- 在props中用的是驼峰命名,但是子组件使用的时候需要用-形式,字符串形式模板没有这个限制,这个和当初的组件命名规则类似;
props
属性值类型
props
属性值类型有字符串String
、数值Number
、布尔值Boolean
、数组Array
、对象Object
;
String
就正常的传递,但是Number
2. 子组件向父组件传值
props传递数据原则:单向数据流 不在子组件操作父组件传过来的数据,所以父组件需要监听子组件事件,子组件要通过自定义事件向父组件传递信息
- 子组件通过自定义事件向父组件传递信息
- 父组件监听子组件事件
3. 非父子组件传值
可以当作兄弟之间的传值,不再使用props而是有一个事件中心管理组件间的通信;
比如下面的TOM和JERRY是兄弟组件然后点击TOM使得JERRY+2,点击JERRY使得TOM+1;
具体代码:
五、组件插槽用法
父组件向子组件传递内容,这里的内容指的是模板
- 插槽方式
页面显示结果如下:
- 具名插槽用法,有名字的插槽
- 作用域插槽
六、基于组件的方式实现业务功能
1. 购物车案例
效果图:
按照上面的分为三个组件,标题组件,列表组件,结算组件;
完整代码:D:\web_study\vue\day03组件化开发