이 글에서는 Vue.js 기반의 모바일 컴포넌트 라이브러리인 Cube-ui를 주로 소개하여 참고용으로 올려드립니다.
cube-ui는 Vue.js를 기반으로 Didi의 기술팀이 구현한 정교한 모바일 구성 요소 라이브러리입니다. 훌륭합니다. 구성 요소가 많지는 않지만 기본 시나리오에는 충분합니다. 오픈 소스에 감사드립니다!
먼저 vue 프로젝트를 생성하세요
vue init webpack my-project cd my-project npm install
cube-ui 설치
npm install cube-ui -S
공식적으로 권장하는 것은 컴포넌트 모듈과 해당 스타일을 좀 더 우아하게 도입할 수 있는 babel-plugin-transform-modules 플러그인을 사용하는 것입니다.
npm install babel-plugin-transform-modules -D
그런 다음 이 플러그인을 구성하고 .babelrc를 수정합니다: (플러그인에 추가)
{ "plugins": [ ["transform-modules", { "cube-ui": { "transform": "cube-ui/lib/${member}", "kebabCase": true, "style": { "ignore": ["create-api", "better-scroll"] } } }] ] }
소개 방법 1: 모두 가져오기
보통 main.js 항목 파일에:
import Vue from 'vue' import Cube from 'cube-ui' // 一般直接放在这个位置 Vue.use(Cube)
모두 소개한 후, 이는 동일합니다. 글로벌 등록을 하여 바로 사용할 수 있습니다. 각 .vue 파일에서 {...}(로컬 참조)를 가져올 필요가 없으며 구성 요소{...}가 로컬에 등록됩니다.
도입 방법 2: Import on Demand
import { /* eslint-disable no-unused-vars */ Style, // 必需 Button } from 'cube-ui'
참고: Import On Demand의 경우 기본 스타일 부분은 패키징되지 않으므로 사용 시 스타일 모듈을 도입해야 합니다.
등록 방법 글로벌 등록 또는 로컬 등록을 선택할 수 있습니다:
// 全局注册 Vue.use(Button) // 在入口文件中 // 或者局部注册 // 某个组件中 { components: { CubeButton: Button } }
필요에 따라 도입할 수 있는 모든 구성 요소:
import { Button, Checkbox, Loading, Tip, Toast, Picker, TimePicker, Dialog, ActionSheet, Scroll, Slide, IndexList } from 'cube-ui'
create-api 및 better-scroll 모듈도 도입할 수 있습니다:
import { createAPI, BetterScroll } from 'cube-ui'
Example
<template> <cube-button @click="showDiaog">show dialog<cube-button> </template> <script> export default { methods: { showDialog() { this.$createDialog({ type: 'alert', title: 'Alert', content: 'dialog content' }).show() } } } </script>
사후 컴파일을 사용하지 마세요
참고: webpack 2+가 포함된 Cube-ui는 기본적으로 사후 컴파일을 사용하지만 사후 컴파일에는 일부 종속성과 구성이 필요합니다(사용하지 않으려면 이 페이지 끝 참조). 컴파일 후, webpack 구성을 직접 수정할 수 있습니다. 그게 다입니다:
// webpack.config.js module.exports = { // ... resolve: { // ... alias: { // ... 'cube-ui': 'cube-ui/lib' // ... } // ... } // ... }
사용 후 컴파일
cube-ui는 webpack 2+를 사용한 후 기본적으로 컴파일되므로 애플리케이션은 Cube-ui의 종속성 및 구성과 호환되어야 합니다. .
1. package.json
{ // webpack-post-compile-plugin 依赖 compileDependencies "compileDependencies": ["cube-ui"], "devDependencies": { "babel-plugin-transform-modules": "^0.0.2", // 新增 stylus 相关依赖 (都需要额外安装:npm install … -D) // stylus 类似于 sass,less "stylus": "^0.54.5", "stylus-loader": "^2.1.1", "webpack-post-compile-plugin": "^0.1.2" } }
2. .babelrc를 수정하고 여전히 babel-plugin-transform-modules를 사용합니다.
"plugins": [ ["transform-runtime"], ["transform-modules", { "cube-ui": { // 注意: 这里的路径需要修改到 src/modules 下 "transform": "./node_modules/cube-ui/src/modules/${member}", "kebabCase": true } }] ]
3 webpack.base.conf.js
var PostCompilePlugin = require('webpack-post-compile-plugin') module.exports = { // ... plugins: [ // ... new PostCompilePlugin() ] // ... }
4를 수정합니다. .js에서 내보내기.cssLoaders 함수
exports.cssLoaders = function (options) { // ... const stylusOptions = { 'resolve url': true } // https://vue-loader.vuejs.org/en/configurations/extract-css.html return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateLoaders('sass', { indentedSyntax: true }), scss: generateLoaders('sass'), stylus: generateLoaders('stylus', stylusOptions), styl: generateLoaders('stylus', stylusOptions) } }
를 실행하고 결과를 확인하세요.
npm run dev
위 내용은 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
Javascript에서 고성능 로딩 시퀀스를 구현하는 방법
Vue+Flask를 사용하여 로그인 확인 점프를 구현하는 방법(자세한 튜토리얼)
react-redux의 connect 데코레이터 사용법에 대하여
위 내용은 Vue.js에서 모바일 컴포넌트 라이브러리를 사용하는 방법(자세한 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!