Skip to content

Instantly share code, notes, and snippets.

@josepereza
Last active February 14, 2024 18:00
Show Gist options
  • Save josepereza/1dcf75263c1f8f08827992778d3046a0 to your computer and use it in GitHub Desktop.
Save josepereza/1dcf75263c1f8f08827992778d3046a0 to your computer and use it in GitHub Desktop.
Integracion de materializecss en vue js.
npm install materialize-css
o
yarn add materialize-css@next
//Agregar en el archivo main.js
import Vue from 'vue';
import VueRouter from "vue-router";
import App from './App.vue';
// materializeCss
import 'materialize-css/dist/css/materialize.css'
import 'materialize-css/dist/js/materialize.js'
//Agregar en los componentes vue
mounted() {
M.AutoInit();
}
//Agregar en en los componentes vue en la seccion <style></style>
<style scoped>
@import url("https://fonts.googleapis.com/icon?family=Material+Icons");
</style>
@josepereza
Copy link
Author

josepereza commented Oct 5, 2019

Integra materializeCss framework con vuejs en 3 sencillos pasos

Asumiré que si sentiste curiosidad por el enunciado, ya tienes cierto conocimiento sobre vuejs, particularmente el primer framework para el desarrollo de sitios SPA que utilice fue angularjs pero mi favorito y el que decidí ir día a día conociendo mejor es el creado por Evan You.
si bien es cierto que dentro de la comunidad de vuejs existen alternativas excelentes como vuetify o vue-material, soy de los que prefiere utilizar directamente materializeCss y es algo que resulta util para aquellos que ya tenemos experiencia con el framework y no nos interesa demasiado utilizar o aprender a utilizar vuetify (a pesar de que este en realidad me guste ) o vue-material.
Dicho esto, en 3 sencillos pasos podremos empezar a maquetar al estilo material design nuestras webs con vue.

  1. instalando materializeCss desde el repositorio de npm.
npm install materialize-css@next
o
yarn add materialize-css@next

esto nos traerá la ultima versión del framework de css.

A partir de la versión alpha 1.0.0 materializecss se desprende de jquery ya que pasaron sus funciones a vanilla javascript lo que significa también que no tendremos que preocuparnos por conflictos con jquery dentro de vue o otro framework javascript como angular. mas que en el caso de que por alguna razon tengas una configuracion manual de webpack y pasaras por alto configurar el css-loader en las reglas.
2) importando a nuestro main.js los archivos de materializeCss.

import Vue from 'vue';
import VueRouter from "vue-router";
import App from './App.vue';
// materializeCss
import 'materialize-css/dist/css/materialize.css'
import 'materialize-css/dist/js/materialize.js'

ya en este punto no necesitas hacer nada en particular, mas que empezar a maquetar utilizando clases y componentes que ofrece materializeCss framework dentro de tus componentes de vuejs.

pero como te habrás dado cuenta, al principio del articulo mencione tres sencillos pasos de los cuales ya he explicado 2, el paso 3 es algo muy simple pero importante, a pesar de que con los pasos anteriores perfectamente puedes hacer muchas cosas, ciertos componentes necesitan la propiedad autoinit (los select por ejemplo) de materialize para renderizarse/funcionar.

  1. autoinit en componentes de vue
    para este paso solamente necesitamos hacer uso de un método del ciclo de vida del componente llamado mounted()
mounted() {
      M.AutoInit();
    }

  1. Y al final de nuestros componentes de vue , en la seccion <style></style, importamos los iconos de google agregando lo siguiente:
<style scoped>
@import url("https://fonts.googleapis.com/icon?family=Material+Icons");

</style>

Y con esto tendríamos ejecutándose las funciones de javasScript que necesitan ciertos elementos afectados por materializeCss, espero que sea de provecho, hasta una próxima ocasión.

Autor de este articulo : @michelnovellino

@Talavera281
Copy link

<script> import HelloWorld from './components/HelloWorld.vue' import 'materialize-css/dist/css/materialize.css' import 'materialize-css/dist/js/materialize.js' export default { name: 'App', components: { HelloWorld }, mounted() { app.AutoInit(); } } </script> <style> @import url('https://fonts.googleapis.com/icon?family=Material+Icons'); @import url('https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css'); </style>

@michelnovellino
Copy link

Esto es un plagio descarado, ni siquiera te molestaste en cambiar una palabra pero ni del titulo de mi articulo.
imagen

@josepereza
Copy link
Author

josepereza commented Oct 7, 2023 via email

@michelnovellino
Copy link

Ayudaria por lo menos aclarar que soy el autor, porque tuve problemas con la plataforma donde tengo mi articulo por esto.

@josepereza
Copy link
Author

josepereza commented Oct 8, 2023 via email

@japdz83
Copy link

japdz83 commented Feb 14, 2024

Hola, gusto en saludarles... una consulta...? esto solo funciona con el optionAPI no funciona con el setup? o mejor dicho como se configuraria con el setup en la etiqueta script?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment