主要组件和模块
style
构建项目后添加了reset.css、base.css ;就是从项目搭建之初处理一些常见问题以及规范;其中的 base.css对1px显示问题的处理,该UI的的极致体验可见一斑。
create api
其作用是把把声明式的组件改为API方式的调用,可是Vue推荐的不就是声明式调用组件吗,声明式调用只需要在调用该组件的地方简单声明即可,如下:
<template> XXXX </template>
是不是非常简单,那create API是干啥用的呢?其实他主要的应用场景是全屏类的弹框组件:
如果在一个层级嵌套很深的子组件中使用,仍然通过声明式的方式,很可能它的样式会受到父元素某些 CSS 的影响导致渲染不符合预期。这类组件最好的使用方式就是挂载到 body 下,但是我们如果是声明式地把这些组件挂载到最外层,对它们的控制也非常不灵活。其实最理想的方式是动态把这类组件挂载到 body 下,createAPI 就是干这个事情的。
eg:
1:开发一个自定义的弹框组件
<template> <div class="my-dialog-view"> <cube-popup ref="popup" @mask-click="hide"> <div class="subscribe-dialog-wrapper"> <span class="close" @click="hide"><i class="cubeic-close"></i></span> <div class="title">啊哈哈哈哈</div> some Word for test <cube-button class="button">OK</cube-button> </div> </cube-popup> </div> </template> <script> export default { name: 'my-dialog', methods: { show () { this.$refs.popup.show() this.$emit('show') }, hide () { this.$refs.popup.hide() this.$emit('hide') } // ... } } </script>
2:接着使用 createAPI 模块把它变成一个 API 式的组件:
import MyDialog from './components/subscribe-dialog/my-dialog' createAPI(Vue, mybeDialog, [], true)
3:然后你就可以调用这个组件了
this.$createSubscribeDialog({ }).show()
create API 也是可以将已有的cube 中的组件变成API方式的调用,实现方法和上面基本一致,只是不需要你自己在开发vue文件了。
better-scroll
处理三方插件
后编译
eg:
1:cube-UI利用后编译实现自定义主题
- 在src目录下创建 them.style 文件
- 修改webpack中关于stylus-loader的配置项目
项目演示
我创建了一个vue的项目,启动项目如下图所示
我们想要把其中按钮的背景颜色换掉我们要怎么实现呢
这时候我们来想一下如果我们用的是element-UI 我们要怎么实现这个效果呢?我们要重写这个按钮的样式,但是这样有两个问题:1、容易造成代码污染,有可能导致其他的按钮样式发生变化;2、造成代码冗余。当然还有其他的框架是支持重写重新定义主题的,但是这样也会造成代码冗余。
如果我们用的是cube-ui只需要在them.style 文件中进行修改即可
例如
// button
//$btn-bgc := $color-regular-blue
//$btn-active-bgc := $color-blue
$btn-bgc := #409eff
$btn-active-bgc := #66b1ff
是不是非常简单。