Maison  >  Article  >  interface Web  >  Explication détaillée de l'utilisation de la bibliothèque de composants mobiles cube-ui

Explication détaillée de l'utilisation de la bibliothèque de composants mobiles cube-ui

php中世界最好的语言
php中世界最好的语言original
2018-04-14 11:05:529298parcourir

Cette fois, je vous apporte une explication détaillée de l'utilisation de la bibliothèque de composants mobiles cube-ui. Quelles sont les précautions lors de l'utilisation de la bibliothèque de composants mobiles cube-ui. Voici des cas pratiques, prenons. un regard.

cube-ui est une bibliothèque de composants mobiles exquise implémentée par l'équipe technique de Didi sur la base de Vue.js. C'est génial. Bien qu'il n'y ait pas beaucoup de composants, c'est suffisant pour les scénarios de base. Merci pour l'open source !

Créez d’abord un projet vue

vue init webpack my-project
cd my-project
npm install

Installer cube-ui

npm install cube-ui -S

La recommandation officielle est d'utiliser le plug-in babel-plugin-transform-modules, qui peut introduire les modules de composants et les styles correspondants de manière plus élégante.

npm install babel-plugin-transform-modules -D

Configurez ensuite ce plugin et modifiez .babelrc : (ajouter aux plugins)

{
 "plugins": [
 ["transform-modules", {
  "cube-ui": {
  "transform": "cube-ui/lib/${member}",
  "kebabCase": true,
  "style": {
   "ignore": ["create-api", "better-scroll"]
  }
  }
 }]
 ]
}

Méthode d'introduction 1 : Tout importer

Généralement dans le fichier d'entrée main.js :

import Vue from 'vue'
import Cube from 'cube-ui' // 一般直接放在这个位置
Vue.use(Cube)

Une fois que tout est présenté, cela équivaut à un enregistrement global et vous pouvez l'utiliser directement. Il n'est pas nécessaire d'importer { … } (local fait référence à ) dans chaque fichier .vue, et les composants { … } sont enregistrés localement.

Méthode d'introduction 2 : Introduction à la demande

import {
 /* eslint-disable no-unused-vars */
 Style, // 必需
 Button
} from 'cube-ui'

Remarque : si elle est importée à la demande, la partie de style de base ne sera pas empaquetée, vous devez donc introduire le module de style lors de son utilisation.

Mode d'inscription Vous pouvez choisir une inscription globale ou une inscription partielle :

// 全局注册
Vue.use(Button) // 在入口文件中
// 或者局部注册
// 某个组件中
{
 components: {
 CubeButton: Button
 }
}

Tous les composants pouvant être importés sur demande :

import {
 Button,
 Checkbox,
 Loading,
 Tip,
 Toast,
 Picker,
 TimePicker,
 Dialog,
 ActionSheet,
 Scroll,
 Slide,
 IndexList
} from 'cube-ui'

Vous pouvez également introduire des modules create-api et better-scroll :

import { createAPI, BetterScroll } from 'cube-ui'

Exemple

<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>

Ne pas utiliser la post-compilation

Remarque : cube-ui avec webpack 2+ utilisera la post-compilation par défaut, mais la post-compilation nécessite certaines dépendances et configurations (voir la fin de cette page) ; modifier la configuration du webpack :

// webpack.config.js
module.exports = {
 // ...
 resolve: {
 // ...
 alias: {
  // ...
  'cube-ui': 'cube-ui/lib'
  // ...
 }
 // ...
 }
 // ...
}

Compiler après utilisation

Lorsque cube-ui est associé à webpack 2+, la post-compilation sera utilisée par défaut, l'application doit donc être compatible avec les dépendances et la configuration de cube-ui.

1. Modifier 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. Modifiez .babelrc et continuez à compter sur babel-plugin-transform-modules :

"plugins": [
 ["transform-runtime"],
 ["transform-modules", {
 "cube-ui": {
  // 注意: 这里的路径需要修改到 src/modules 下
  "transform": "./node_modules/cube-ui/src/modules/${member}",
  "kebabCase": true
 }
 }]
]

3. Modifiez webpack.base.conf.js

var PostCompilePlugin = require('webpack-post-compile-plugin')
module.exports = {
 // ...
 plugins: [
 // ...
 new PostCompilePlugin()
 ]
 // ...
}

4. Modifiez la fonction exports.cssLoaders dans build/utils.js

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)
 }
}

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes. sur le site PHP chinois !

Lecture recommandée :

Comment réaliser la liaison de deux zTree dans une seule page

Comment appeler le WeChat fonction de partage dans nodejs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn