Maison > interface Web > js tutoriel > le corps du texte

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

php中世界最好的语言
Libérer: 2018-04-14 11:05:52
original
9297 Les gens l'ont consulté

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
Copier après la connexion

Installer cube-ui

npm install cube-ui -S
Copier après la connexion

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
Copier après la connexion

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"]
  }
  }
 }]
 ]
}
Copier après la connexion

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)
Copier après la connexion

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'
Copier après la connexion

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
 }
}
Copier après la connexion

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'
Copier après la connexion

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

import { createAPI, BetterScroll } from 'cube-ui'
Copier après la connexion

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>
Copier après la connexion

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'
  // ...
 }
 // ...
 }
 // ...
}
Copier après la connexion

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"
 }
}
Copier après la connexion

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
 }
 }]
]
Copier après la connexion

3. Modifiez webpack.base.conf.js

var PostCompilePlugin = require('webpack-post-compile-plugin')
module.exports = {
 // ...
 plugins: [
 // ...
 new PostCompilePlugin()
 ]
 // ...
}
Copier après la connexion

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)
 }
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal