Integración de Web3 en Aplicaciones Vue

Con Web3, es posible crear aplicaciones descentralizadas en una red de cadena de bloques, lo que otorga a los usuarios la propiedad total de sus propios datos. La red blockchain utiliza contratos inteligentes para manejar toda la lógica de back-end de las aplicaciones descentralizadas.

Como la red blockchain programable más popular, Ethereum permite a los desarrolladores crear y manipular aplicaciones descentralizadas (DApps), finanzas descentralizadas (DeFi), contratos inteligentes y tokens no fungibles (NFT).

En este artículo, cubriremos los conceptos básicos del uso de Web3 en aplicaciones Vue, incluido el proceso de instalación y la interacción con contratos inteligentes. Para seguir este artículo, necesitará lo siguiente:

  • Comprensión de la CLI de Vue
  • Comprensión básica de Web3
  • Familiaridad con los contratos inteligentes de Solidity y conocimiento de cómo implementarlos

¿Qué es Web3?

Web3 es una nueva generación de Internet que se basa en la tecnología blockchain, que promueve la descentralización y la economía basada en tokens. Las llamadas a contratos inteligentes y el envío de transacciones constituyen la mayoría de las interacciones en una red de cadena de bloques.

¿Qué son los contratos inteligentes?

Un contrato inteligente es un software de computadora autoejecutable que vive en una red blockchain. La cadena de bloques ejecuta un contrato inteligente tan pronto como se implementa. Cuando se ejecuta el contrato, crea interfaces que las DApps utilizan para ampliar su funcionalidad.

Considere el siguiente contrato inteligente simple de Solidity:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0;

contract Contract {
    string private text;

    function speak() public view returns (string memory) {
        return text;
    }

    function changeText(string memory newText) public {
        text = newText;
    }
}

Cuando implementa el contrato anterior en la red blockchain, crea dos métodos de interfaz speak, que devuelve una cadena de texto y changeText, que cambia la cadena que speakdevuelve.

configuración del proyecto

Si ya tiene un proyecto de Vue listo para la integración, puede omitir esta sección. Si no lo hace, cree el proyecto usando el siguiente comando para el administrador de paquetes npx:

npx vue create web3-project

Si usa el administrador de paquetes Yarn, use el siguiente comando en su lugar:

yarn vue create web3-project

En las indicaciones del menú, seleccione Vue3 o Vue2 . No importa cuál elijas porque puedes integrar Web3 en ambos de la misma manera. Después de crear el proyecto, escriba el siguiente código en su App.vuearchivo:

 

<template>
  <div>
    <!-- connect-wallet button is visible if the wallet is not connected -->
  <button v-if="!connected">Connect wallet</button>
    <!-- call-contract button is visible if the wallet is connected -->
    <button v-if="connected">Call contract</button>
    {{ contractResult }}
  </div>
</template>

<script>

export default {
  name: 'App',

  data() {
    return {
      connected: false,
      contractResult: '',
    }
  },
}
</script>

En App.vue, tenemos dos botones; el primero es para conectar una billetera y el segundo es para llamar a un método de contrato inteligente.

El call contractbotón está oculto hasta que el usuario conecta su billetera a la aplicación web. Nuestra aplicación usa la connectedvariable de estado para guardar el estado de conexión de la billetera.

Configurando Web3

En el directorio de su proyecto, ejecute el siguiente comando para instalar el paquete Web3 usando npm:

npm install web3

Si está utilizando Yarn, ejecute el siguiente comando en su lugar:

yarn add web3

Después de instalar el paquete, importamos Web3 al App.vuearchivo y ejecutamos el proyecto para probar su compatibilidad:

...
<script>
import Web3 from 'web3'
export default {
  name: 'App',
…

Si no recibe ningún mensaje de error además Web3 is imported but never usedde , Web3 es compatible con su marco. Pero, si el marco genera otros errores, debe cambiar a una versión anterior de Vue. Los problemas de compatibilidad con Web3 surgen con el módulo Webpack 5 , que utiliza Vue 3.

Conectando nuestra billetera

MetaMask es una aplicación que permite a los usuarios almacenar y conectar sus billeteras a aplicaciones Web3. Metamask se puede instalar en todos los principales navegadores. Al conectar su billetera a un sitio web, un usuario puede hacer lo siguiente:

  • Comprar y vender tokens en un sitio web
  • Administre activos digitales en una red blockchain
  • Realizar transacciones a cuentas en un sitio web
  • Interactuar con contratos inteligentes en una red blockchain

Cuando instala la extensión MetaMask en su navegador, la extensión crea un window.ethereumobjeto. Las aplicaciones Web3 usan el window.ethereumobjeto para acceder a la billetera del usuario y conectarse a la red Ethereum.

El window.ethereum.request()método solicita al usuario que conecte su billetera MetaMask:

ethereum.request({ method: 'eth_requestAccounts' })

Podemos usar este mensaje para registrar un evento de conexión de billetera a nuestro connect walletbotón. Agregue el siguiente código a su App.vuearchivo:

<template>
  <div>
    <!-- "connect" click event is registered -->
>    <button v-if="!connected" @click="connect">Connect wallet</button>
    <button v-if="connected">Call contract</button>
    {{ contractResult }}
  </div>
</template>

<script>
export default {
  name: 'App',

  data() {
    return {
      connected: false,
      contractResult: '',
    }
  },

>  methods: {

>    connect: function () {
>        // this connects to the wallet
>      
>      if (window.ethereum) { // first we check if metamask is installed
>        window.ethereum.request({ method: 'eth_requestAccounts' })
>          .then(() => {
>            this.connected = true; // If users successfully connected their wallet
>          });
>      }
>    }
>  }
}
</script>

Cuando el usuario hace clic en el connect walletbotón, aparece un mensaje de MetaMask que le permite seleccionar las cuentas que desea conectar. Después de que el usuario conecta su billetera, la connectedvariable de estado en el App.vuearchivo se convierte en true.

Interactuar con contratos inteligentes implementados

Los contratos inteligentes implementados crean interfaces con las que interactúan las aplicaciones Web3. Para acceder a estas interfaces, debemos proporcionar a Web3 la ABI, una descripción de la interfaz del contrato inteligente y la dirección del contrato, la ubicación del contrato en la red Ethereum.

Antes de escribir este artículo, implementé un contrato inteligente en la red de prueba de Rinkeby . Usaré su ABI y dirección en el siguiente ejemplo, pero si ya tiene un contrato inteligente implementado, puede usar la dirección y el ABI de ese contrato en lugar de los que se incluyen aquí.

Para interactuar con contratos implementados, cree una instancia de Web3 usando el window.ethereumobjeto:

let web3 = new Web3(window.ethereum);

Luego, cree una referencia al contrato implementado usando su ABI y dirección:

let contract = new web3.eth.Contract(abi, contractAddress)

Después de inicializar el contrato, puede interactuar con él. Si el contrato tiene un método de interfaz llamado greet, lo llamamos usando el siguiente código:

contract.methods.greet().call()

Ahora, modificaremos el call contractbotón para llamar a un contrato con el greetmétodo de su contrato implementado:

<!-- vue -->
<button v-if="connected" @click="callContract">Call contract</button>

A continuación, cree un callContractmétodo en el objeto Vue al que call contractllama el botón:

callContract: function () {
  // method for calling the contract method
  let web3 = new Web3(window.ethereum);
  let contractAddress = '0xC0B2D76aB95B7E31E241ce713ea1C72d0a50588e';

  let abi = JSON.parse(`[{"inputs": [],"stateMutability": "nonpayable","type": "constructor"},{"inputs": [],"name": "greet","outputs": [{"internalType": "string","name": "","type": "string"}],"stateMutability": "view","type": "function"}]`);


  let contract = new web3.eth.Contract(abi, contractAddress);

  contract.methods.greet().call()
    .then(result => this.contractResult = result);
}

El callContractmétodo se registrará como el evento de clic del botón y llamará al greetmétodo en el contrato inteligente implementado:

<template>
  <div>
    <button v-if="!connected" @click="connect">Connect wallet</button>

    <!-- "callContract" event handler is added -->
>    <button v-if="connected" @click="callContract">Call contract</button>

    <!-- displays the result of the contract -->
    {{ contractResult }}
  </div>
</template>

<script>
import Web3 from 'web3'

export default {
  name: 'App',

  data() {
    return {
      connected: false,
      contractResult: '',
    }
  },

  methods: {

    connect: function () {
      let ethereum = window.ethereum;
      if (ethereum) {
      ethereum.request({ method: 'eth_requestAccounts' })
       .then(() => {
            this.connected = true;
          });
      }
    },

>    callContract: function () {
>        // method for calling the contract method
>      let web3 = new Web3(window.ethereum);
>      let contractAddress = '0xC0B2D76aB95B7E31E241ce713ea1C72d0a50588e';

>      let abi = JSON.parse(`[{"inputs": [],"stateMutability": "nonpayable","type": "constructor"},{"inputs": [],"name": "greet","outputs": [{"internalType": "string","name": "","type": "string"}],"stateMutability": "view","type": "function"}]`);


>      let contract = new web3.eth.Contract(abi, contractAddress);

>      contract.methods.greet().call()
>        .then(result => this.contractResult = result);
>    }

  }
}
</script>

Después de que el usuario conecte su billetera y llame al contrato, la aplicación debería verse como la imagen a continuación:

Conclusión

En este artículo, aprendimos a usar Vue para crear una aplicación Web3 usando la red de cadena de bloques Ethereum, conectar una billetera MetaMask e interactuar con contratos inteligentes. Como puede ver, integrar Web3 en una aplicación Vue es bastante sencillo siempre que esté familiarizado con Solidity. Web3 ofrece importantes beneficios para la privacidad y la propiedad de los datos, y exploramos algunas de las herramientas y conceptos que conforman este proceso, como los contratos inteligentes.

Esta historia se publicó originalmente en https://blog.logrocket.com/integrate-web3-into-vue/

#vue #web3 

What is GEEK

Buddha Community

Integración de Web3 en Aplicaciones Vue
Luna  Mosciski

Luna Mosciski

1600583123

8 Popular Websites That Use The Vue.JS Framework

In this article, we are going to list out the most popular websites using Vue JS as their frontend framework.

Vue JS is one of those elite progressive JavaScript frameworks that has huge demand in the web development industry. Many popular websites are developed using Vue in their frontend development because of its imperative features.

This framework was created by Evan You and still it is maintained by his private team members. Vue is of course an open-source framework which is based on MVVM concept (Model-view view-Model) and used extensively in building sublime user-interfaces and also considered a prime choice for developing single-page heavy applications.

Released in February 2014, Vue JS has gained 64,828 stars on Github, making it very popular in recent times.

Evan used Angular JS on many operations while working for Google and integrated many features in Vue to cover the flaws of Angular.

“I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight." - Evan You

#vuejs #vue #vue-with-laravel #vue-top-story #vue-3 #build-vue-frontend #vue-in-laravel #vue.js

Integración de Web3 en Aplicaciones Vue

Con Web3, es posible crear aplicaciones descentralizadas en una red de cadena de bloques, lo que otorga a los usuarios la propiedad total de sus propios datos. La red blockchain utiliza contratos inteligentes para manejar toda la lógica de back-end de las aplicaciones descentralizadas.

Como la red blockchain programable más popular, Ethereum permite a los desarrolladores crear y manipular aplicaciones descentralizadas (DApps), finanzas descentralizadas (DeFi), contratos inteligentes y tokens no fungibles (NFT).

En este artículo, cubriremos los conceptos básicos del uso de Web3 en aplicaciones Vue, incluido el proceso de instalación y la interacción con contratos inteligentes. Para seguir este artículo, necesitará lo siguiente:

  • Comprensión de la CLI de Vue
  • Comprensión básica de Web3
  • Familiaridad con los contratos inteligentes de Solidity y conocimiento de cómo implementarlos

¿Qué es Web3?

Web3 es una nueva generación de Internet que se basa en la tecnología blockchain, que promueve la descentralización y la economía basada en tokens. Las llamadas a contratos inteligentes y el envío de transacciones constituyen la mayoría de las interacciones en una red de cadena de bloques.

¿Qué son los contratos inteligentes?

Un contrato inteligente es un software de computadora autoejecutable que vive en una red blockchain. La cadena de bloques ejecuta un contrato inteligente tan pronto como se implementa. Cuando se ejecuta el contrato, crea interfaces que las DApps utilizan para ampliar su funcionalidad.

Considere el siguiente contrato inteligente simple de Solidity:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0;

contract Contract {
    string private text;

    function speak() public view returns (string memory) {
        return text;
    }

    function changeText(string memory newText) public {
        text = newText;
    }
}

Cuando implementa el contrato anterior en la red blockchain, crea dos métodos de interfaz speak, que devuelve una cadena de texto y changeText, que cambia la cadena que speakdevuelve.

configuración del proyecto

Si ya tiene un proyecto de Vue listo para la integración, puede omitir esta sección. Si no lo hace, cree el proyecto usando el siguiente comando para el administrador de paquetes npx:

npx vue create web3-project

Si usa el administrador de paquetes Yarn, use el siguiente comando en su lugar:

yarn vue create web3-project

En las indicaciones del menú, seleccione Vue3 o Vue2 . No importa cuál elijas porque puedes integrar Web3 en ambos de la misma manera. Después de crear el proyecto, escriba el siguiente código en su App.vuearchivo:

 

<template>
  <div>
    <!-- connect-wallet button is visible if the wallet is not connected -->
  <button v-if="!connected">Connect wallet</button>
    <!-- call-contract button is visible if the wallet is connected -->
    <button v-if="connected">Call contract</button>
    {{ contractResult }}
  </div>
</template>

<script>

export default {
  name: 'App',

  data() {
    return {
      connected: false,
      contractResult: '',
    }
  },
}
</script>

En App.vue, tenemos dos botones; el primero es para conectar una billetera y el segundo es para llamar a un método de contrato inteligente.

El call contractbotón está oculto hasta que el usuario conecta su billetera a la aplicación web. Nuestra aplicación usa la connectedvariable de estado para guardar el estado de conexión de la billetera.

Configurando Web3

En el directorio de su proyecto, ejecute el siguiente comando para instalar el paquete Web3 usando npm:

npm install web3

Si está utilizando Yarn, ejecute el siguiente comando en su lugar:

yarn add web3

Después de instalar el paquete, importamos Web3 al App.vuearchivo y ejecutamos el proyecto para probar su compatibilidad:

...
<script>
import Web3 from 'web3'
export default {
  name: 'App',
…

Si no recibe ningún mensaje de error además Web3 is imported but never usedde , Web3 es compatible con su marco. Pero, si el marco genera otros errores, debe cambiar a una versión anterior de Vue. Los problemas de compatibilidad con Web3 surgen con el módulo Webpack 5 , que utiliza Vue 3.

Conectando nuestra billetera

MetaMask es una aplicación que permite a los usuarios almacenar y conectar sus billeteras a aplicaciones Web3. Metamask se puede instalar en todos los principales navegadores. Al conectar su billetera a un sitio web, un usuario puede hacer lo siguiente:

  • Comprar y vender tokens en un sitio web
  • Administre activos digitales en una red blockchain
  • Realizar transacciones a cuentas en un sitio web
  • Interactuar con contratos inteligentes en una red blockchain

Cuando instala la extensión MetaMask en su navegador, la extensión crea un window.ethereumobjeto. Las aplicaciones Web3 usan el window.ethereumobjeto para acceder a la billetera del usuario y conectarse a la red Ethereum.

El window.ethereum.request()método solicita al usuario que conecte su billetera MetaMask:

ethereum.request({ method: 'eth_requestAccounts' })

Podemos usar este mensaje para registrar un evento de conexión de billetera a nuestro connect walletbotón. Agregue el siguiente código a su App.vuearchivo:

<template>
  <div>
    <!-- "connect" click event is registered -->
>    <button v-if="!connected" @click="connect">Connect wallet</button>
    <button v-if="connected">Call contract</button>
    {{ contractResult }}
  </div>
</template>

<script>
export default {
  name: 'App',

  data() {
    return {
      connected: false,
      contractResult: '',
    }
  },

>  methods: {

>    connect: function () {
>        // this connects to the wallet
>      
>      if (window.ethereum) { // first we check if metamask is installed
>        window.ethereum.request({ method: 'eth_requestAccounts' })
>          .then(() => {
>            this.connected = true; // If users successfully connected their wallet
>          });
>      }
>    }
>  }
}
</script>

Cuando el usuario hace clic en el connect walletbotón, aparece un mensaje de MetaMask que le permite seleccionar las cuentas que desea conectar. Después de que el usuario conecta su billetera, la connectedvariable de estado en el App.vuearchivo se convierte en true.

Interactuar con contratos inteligentes implementados

Los contratos inteligentes implementados crean interfaces con las que interactúan las aplicaciones Web3. Para acceder a estas interfaces, debemos proporcionar a Web3 la ABI, una descripción de la interfaz del contrato inteligente y la dirección del contrato, la ubicación del contrato en la red Ethereum.

Antes de escribir este artículo, implementé un contrato inteligente en la red de prueba de Rinkeby . Usaré su ABI y dirección en el siguiente ejemplo, pero si ya tiene un contrato inteligente implementado, puede usar la dirección y el ABI de ese contrato en lugar de los que se incluyen aquí.

Para interactuar con contratos implementados, cree una instancia de Web3 usando el window.ethereumobjeto:

let web3 = new Web3(window.ethereum);

Luego, cree una referencia al contrato implementado usando su ABI y dirección:

let contract = new web3.eth.Contract(abi, contractAddress)

Después de inicializar el contrato, puede interactuar con él. Si el contrato tiene un método de interfaz llamado greet, lo llamamos usando el siguiente código:

contract.methods.greet().call()

Ahora, modificaremos el call contractbotón para llamar a un contrato con el greetmétodo de su contrato implementado:

<!-- vue -->
<button v-if="connected" @click="callContract">Call contract</button>

A continuación, cree un callContractmétodo en el objeto Vue al que call contractllama el botón:

callContract: function () {
  // method for calling the contract method
  let web3 = new Web3(window.ethereum);
  let contractAddress = '0xC0B2D76aB95B7E31E241ce713ea1C72d0a50588e';

  let abi = JSON.parse(`[{"inputs": [],"stateMutability": "nonpayable","type": "constructor"},{"inputs": [],"name": "greet","outputs": [{"internalType": "string","name": "","type": "string"}],"stateMutability": "view","type": "function"}]`);


  let contract = new web3.eth.Contract(abi, contractAddress);

  contract.methods.greet().call()
    .then(result => this.contractResult = result);
}

El callContractmétodo se registrará como el evento de clic del botón y llamará al greetmétodo en el contrato inteligente implementado:

<template>
  <div>
    <button v-if="!connected" @click="connect">Connect wallet</button>

    <!-- "callContract" event handler is added -->
>    <button v-if="connected" @click="callContract">Call contract</button>

    <!-- displays the result of the contract -->
    {{ contractResult }}
  </div>
</template>

<script>
import Web3 from 'web3'

export default {
  name: 'App',

  data() {
    return {
      connected: false,
      contractResult: '',
    }
  },

  methods: {

    connect: function () {
      let ethereum = window.ethereum;
      if (ethereum) {
      ethereum.request({ method: 'eth_requestAccounts' })
       .then(() => {
            this.connected = true;
          });
      }
    },

>    callContract: function () {
>        // method for calling the contract method
>      let web3 = new Web3(window.ethereum);
>      let contractAddress = '0xC0B2D76aB95B7E31E241ce713ea1C72d0a50588e';

>      let abi = JSON.parse(`[{"inputs": [],"stateMutability": "nonpayable","type": "constructor"},{"inputs": [],"name": "greet","outputs": [{"internalType": "string","name": "","type": "string"}],"stateMutability": "view","type": "function"}]`);


>      let contract = new web3.eth.Contract(abi, contractAddress);

>      contract.methods.greet().call()
>        .then(result => this.contractResult = result);
>    }

  }
}
</script>

Después de que el usuario conecte su billetera y llame al contrato, la aplicación debería verse como la imagen a continuación:

Conclusión

En este artículo, aprendimos a usar Vue para crear una aplicación Web3 usando la red de cadena de bloques Ethereum, conectar una billetera MetaMask e interactuar con contratos inteligentes. Como puede ver, integrar Web3 en una aplicación Vue es bastante sencillo siempre que esté familiarizado con Solidity. Web3 ofrece importantes beneficios para la privacidad y la propiedad de los datos, y exploramos algunas de las herramientas y conceptos que conforman este proceso, como los contratos inteligentes.

Esta historia se publicó originalmente en https://blog.logrocket.com/integrate-web3-into-vue/

#vue #web3 

Teresa  Bosco

Teresa Bosco

1598685221

Vue File Upload Using vue-dropzone Tutorial

In this tutorial, I will show you how to upload a file in Vue using vue-dropzone library. For this example, I am using Vue.js 3.0. First, we will install the Vue.js using Vue CLI, and then we install the vue-dropzone library. Then configure it, and we are ready to accept the file. DropzoneJS is an open source library that provides drag and drops file uploads with image previews. DropzoneJS is lightweight doesn’t depend on any other library (like jQuery) and is  highly customizable. The  vue-dropzone is a vue component implemented on top of Dropzone.js. Let us start Vue File Upload Using vue-dropzone Tutorial.

Dropzone.js is an open-source library providing drag-and-drop file uploads with image previews. DropzoneJS is lightweight, doesn’t depend on any other library (like jQuery), and is highly customizable.

The vue-dropzone is a vue component implemented on top of Dropzone.js.

First, install the Vue using Vue CLI.

Step 1: Install Vue.js using Vue CLI.

Go to your terminal and hit the following command.

npm install -g @vue/cli
         or
yarn global add @vue/cli

If you face any error, try running the command as an administrator.

Now, we need to generate the necessary scaffold. So type the following command.

vue create vuedropzone

It will install the scaffold.

Open the project in your favorite editor. Mine is Visual Studio Code.

cd vuedropzone
code .

Step 2: Install vue-dropzone.

I am using the Yarn package manager. So let’s install using Yarn. You can use NPM, also. It does not matter.

yarn add vue2-dropzone

or

npm install vue2-dropzone

Okay, now we need to add one css file with the above package. Now, vue cli uses css loader, so we can directly import in the src >>  main.js entry file.

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
  render: h => h(App)
}).$mount('#app')

import 'vue2-dropzone/dist/vue2Dropzone.css'

If importing css is not working for you, then you need to install that CSS file manually.

Copy this vue2Dropzone.css file’s content.

Create one file inside the src  >>  assets folder, create one css file called vuedropzone.css and paste the content there.

Import this css file inside src  >>  App.vue file.

<style lang="css">
  @import './assets/vuedropzone.css';
</style>

Now, it should include in our application.

Step 3: Upload an Image.

Our primary boilerplate has one ready-made component called HelloWorld.vue inside src  >>  components folder. Now, create one more file called FileUpload.vue.

Add the following code to FileUpload.vue file.

// FileUpload.vue

<template>
  <div id="app">
    <vue-dropzone id="upload" :options="config"></vue-dropzone>
  </div>
</template>

<script>
import vueDropzone from "vue2-dropzone";

export default {
  data: () => ({
    config: {
      url: "https://appdividend.com"
    }
  }),
  components: {
    vueDropzone
  }
};
</script>

Here, our API endpoint is https://appdividend.com. It is the point where we will hit the POST route and store our image, but it is my blog’s homepage, so it will not work anyway. But let me import this file into App.vue component and see what happens.

// App.vue

<template>
  <div id="app">
    <FileUpload />
  </div>
</template>

<script>
import FileUpload from './components/FileUpload.vue'

export default {
  name: 'app',
  components: {
    FileUpload
  }
}
</script>

<style lang="css">
  @import './assets/vuedropzone.css';
</style>

Now, start the development server using the following command. It will open up URL: http://localhost:8080.

npm run serve

Now, after uploading the image, we can see that the image upload is failed due to the wrong POST request endpoint.

Step 4: Create Laravel API for the endpoint.

Install the Laravel.

After that, we configure the database in the .env file and use MySQL database.

We need to create one model and migration file to store the image. So let us install the following command inside the Laravel project.

php artisan make:model Image -m

It will create both the Image model and create_images_table.php migrations file.

Now, open the migrations file and add the schema to it.

// create_images_table.php

public function up()
    {
        Schema::create('images', function (Blueprint $table) {
            $table->increments('id');
            $table->string('image_name');
            $table->timestamps();
        });
    }

Now, migrate the database table using the following command.

php artisan migrate

It creates the table in the database.

Now, we need to add a laravel-cors package to prevent cross-site-allow-origin errors. Go to the Laravel root and enter the following command to install it.

composer require barryvdh/laravel-cors

Configure it in the config  >>  app.php file.

Barryvdh\Cors\ServiceProvider::class,

Add the middleware inside app >>  Http  >>  Kernel.php file.

// Kernel.php

protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\TrustProxies::class,
        \Barryvdh\Cors\HandleCors::class,
];

Step 5: Define the API route and method to store the image.

First, create an ImageController.php file using the following command.

php artisan make:controller ImageController

Define the store method. Also, create one images folder inside the public directory because we will store an image inside it.

Right now, I have written the store function that handles one image at a time. So do not upload multiple photos at a time; otherwise, it will break.

// ImageController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Image;

class ImageController extends Controller
{
    public function store(Request $request)
    {
       if($request->file('file'))
       {
          $image = $request->file('file');
          $name = time().$image->getClientOriginalName();
          $image->move(public_path().'/images/', $name); 
        }

       $image= new Image();
       $image->image_name = $name;
       $image->save();

       return response()->json(['success' => 'You have successfully uploaded an image'], 200);
     }
}

Go to the routes   >>  api.php file and add the following route.

// api.php

Route::post('image', 'ImageController@store');

Step 6: Edit FileUpload.vue component.

We need to add the correct Post request API endpoint in FileUpload.vue component.

// FileUpload.vue

<template>
  <div id="app">
    <vue-dropzone id="drop1" :options="config" @vdropzone-complete="afterComplete"></vue-dropzone>
  </div>
</template>

<script>
import vueDropzone from "vue2-dropzone";

export default {
  data: () => ({
    config: {
      url: "http://localhost:8000/api/image",
      
    }
  }),
  components: {
    vueDropzone
  },
  methods: {
    afterComplete(file) {
      console.log(file);
    }
  }
};
</script>

Now, save the file and try to upload an image. If everything is okay, then you will be able to save the image on the Laravel web server as well as save the name in the database as well.

You can also verify on the server side by checking the database entry and the images folder in which we have saved the image.

Step 7: More vue-dropzone configuration.

The only required options are url, but there are many more you can use.

For example, let’s say you want:

  • A maximum of 4 files
  • 2 MB max file size
  • Sent in chunks of 500 bytes
  • Set a custom thumbnail size of 150px
  • Make the uploaded items cancelable and removable (by default, they’re not)
export default {
  data: () => ({
    dropOptions: {
      url: "https://httpbin.org/post",
      maxFilesize: 5, // MB
      maxFiles: 5,
      chunking: true,
      chunkSize: 400, // Bytes
      thumbnailWidth: 100, // px
      thumbnailHeight: 100,
      addRemoveLinks: true
    }
  })
  // ...
}

Happy Coding !!!

Originally published at https://appdividend.com 

#vue #vue-dropzone #vue.js #dropzone.js #dropzonejs #vue cli

joe biden

1617257581

Software de restauración de Exchange para restaurar sin problemas PST en Exchange Server

¿Quiere restaurar los buzones de correo de PST a Exchange Server? Entonces, estás en la página correcta. Aquí, lo guiaremos sobre cómo puede restaurar fácilmente mensajes y otros elementos de PST a MS Exchange Server.

Muchas veces, los usuarios necesitan restaurar los elementos de datos de PST en Exchange Server, pero debido a la falta de disponibilidad de una solución confiable, los usuarios no pueden obtener la solución. Háganos saber primero sobre el archivo PST y MS Exchange Server.

Conozca PST y Exchange Server

PST es un formato de archivo utilizado por MS Outlook, un cliente de correo electrónico de Windows y muy popular entre los usuarios domésticos y comerciales.

Por otro lado, Exchange Server es un poderoso servidor de correo electrónico donde todos los datos se almacenan en un archivo EDB. Los usuarios generalmente guardan la copia de seguridad de los buzones de correo de Exchange en el archivo PST, pero muchas veces, los usuarios deben restaurar los datos del archivo PST en Exchange. Para resolver este problema, estamos aquí con una solución profesional que discutiremos en la siguiente sección de esta publicación.

Un método profesional para restaurar PST a Exchange Server

No le recomendamos que elija una solución al azar para restaurar los datos de PST en Exchange Server. Por lo tanto, al realizar varias investigaciones, estamos aquí con una solución inteligente y conveniente, es decir, Exchange Restore Software. Es demasiado fácil de manejar por todos los usuarios y restaurar cómodamente todos los datos del archivo PST a Exchange Server.

Funciones principales ofrecidas por Exchange Restore Software

El software es demasiado simple de usar y se puede instalar fácilmente en todas las versiones de Windows. Con unos pocos clics, la herramienta puede restaurar los elementos del buzón de Exchange.

No es necesario que MS Outlook restaure los datos PST en Exchange. Todos los correos electrónicos, contactos, notas, calendarios, etc. se restauran desde el archivo PST a Exchange Server.

Todas las versiones de Outlook son compatibles con la herramienta, como Outlook 2019, 2016, 2013, 2010, 2007, etc. La herramienta proporciona varios filtros mediante los cuales se pueden restaurar los datos deseados desde un archivo PST a Exchange Server. El programa se puede instalar en todas las versiones de Windows como Windows 10, 8.1, 8, 7, XP, Vista, etc.

Descargue la versión de demostración del software de restauración de Exchange y analice el funcionamiento del software restaurando los primeros 50 elementos por carpeta.

Líneas finales

No existe una solución manual para restaurar los buzones de correo de Exchange desde el archivo PST. Por lo tanto, hemos explicado una solución fácil e inteligente para restaurar datos de archivos PST en Exchange Server. Simplemente puede usar este software y restaurar todos los datos de PST a Exchange Server.

Más información:- https://www.datavare.com/software/exchange-restore.html

#intercambio de software de restauración #intercambio de restauración #buzón del servidor de intercambio #herramienta de restauración de intercambio

Aria Barnes

Aria Barnes

1625232484

Why is Vue JS the most Preferred Choice for Responsive Web Application Development?

For more than two decades, JavaScript has facilitated businesses to develop responsive web applications for their customers. Used both client and server-side, JavaScript enables you to bring dynamics to pages through expanded functionality and real-time modifications.

Did you know!

According to a web development survey 2020, JavaScript is the most used language for the 8th year, with 67.7% of people choosing it. With this came up several javascript frameworks for frontend, backend development, or even testing.

And one such framework is Vue.Js. It is used to build simple projects and can also be advanced to create sophisticated apps using state-of-the-art tools. Beyond that, some other solid reasons give Vuejs a thumbs up for responsive web application development.

Want to know them? Then follow this blog until the end. Through this article, I will describe all the reasons and benefits of Vue js development. So, stay tuned.

Vue.Js - A Brief Introduction

Released in the year 2014 for public use, Vue.Js is an open-source JavaScript framework used to create UIs and single-page applications. It has over 77.4 million likes on Github for creating intuitive web interfaces.

The recent version is Vue.js 2.6, and is the second most preferred framework according to Stack Overflow Developer Survey 2019.

Every Vue.js development company is widely using the framework across the world for responsive web application development. It is centered around the view layer, provides a lot of functionality for the view layer, and builds single-page web applications.

Some most astonishing stats about Vue.Js:

• Vue was ranked #2 in the Front End JavaScript Framework rankings in the State of JS 2019 survey by developers.

• Approximately 427k to 693k sites are built with Vue js, according to Wappalyzer and BuiltWith statistics of June 2020.

• According to the State of JS 2019 survey, 40.5% of JavaScript developers are currently using Vue, while 34.5% have shown keen interest in using it in the future.

• In Stack Overflow's Developer Survey 2020, Vue was ranked the 3rd most popular front-end JavaScript framework.

Why is Vue.Js so popular?

• High-speed run-time performance
• Vue.Js uses a virtual DOM.
• The main focus is on the core library, while the collaborating libraries handle other features such as global state management and routing.
• Vue.JS provides responsive visual components.

Top 7 Reasons to Choose Vue JS for Web Application Development

Vue js development has certain benefits, which will encourage you to use it in your projects. For example, Vue.js is similar to Angular and React in many aspects, and it continues to enjoy increasing popularity compared to other frameworks.

The framework is only 20 kilobytes in size, making it easy for you to download files instantly. Vue.js easily beats other frameworks when it comes to loading times and usage.

Take a look at the compelling advantages of using Vue.Js for web app development.

#1 Simple Integration

Vue.Js is popular because it allows you to integrate Vue.js into other frameworks such as React, enabling you to customize the project as per your needs and requirements.

It helps you build apps with Vue.js from scratch and introduce Vue.js elements into their existing apps. Due to its ease of integration, Vue.js is becoming a popular choice for web development as it can be used with various existing web applications.

You can feel free to include Vue.js CDN and start using it. Most third-party Vue components and libraries are additionally accessible and supported with the Vue.js CDN.

You don't need to set up node and npm to start using Vue.js. This implies that it helps develop new web applications, just like modifying previous applications.

The diversity of components allows you to create different types of web applications and replace existing frameworks. In addition, you can also choose to hire Vue js developers to use the technology to experiment with many other JavaScript applications.

#2 Easy to Understand

One of the main reasons for the growing popularity of Vue.Js is that the framework is straightforward to understand for individuals. This means that you can easily add Vue.Js to your web projects.

Also, Vue.Js has a well-defined architecture for storing your data with life-cycle and custom methods. Vue.Js also provides additional features such as watchers, directives, and computed properties, making it extremely easy to build modern apps and web applications with ease.

Another significant advantage of using the Vue.Js framework is that it makes it easy to build small and large-scale web applications in the shortest amount of time.

#3 Well-defined Ecosystem

The VueJS ecosystem is vibrant and well-defined, allowing Vue.Js development company to switch users to VueJS over other frameworks for web app development.

Without spending hours, you can easily find solutions to your problems. Furthermore, VueJs lets you choose only the building blocks you need.

Although the main focus of Vue is the view layer, with the help of Vue Router, Vue Test Utils, Vuex, and Vue CLI, you can find solutions and recommendations for frequently occurring problems.

The problems fall into these categories, and hence it becomes easy for programmers to get started with coding right away and not waste time figuring out how to use these tools.

The Vue ecosystem is easy to customize and scales between a library and a framework. Compared to other frameworks, its development speed is excellent, and it can also integrate different projects. This is the reason why most website development companies also prefer the Vue.Js ecosystem over others.

#4 Flexibility

Another benefit of going with Vue.Js for web app development needs is flexibility. Vue.Js provides an excellent level of flexibility. And makes it easier for web app development companies to write their templates in HTML, JavaScript, or pure JavaScript using virtual nodes.

Another significant benefit of using Vue.Js is that it makes it easier for developers to work with tools like templating engines, CSS preprocessors, and type checking tools like TypeScript.

#5 Two-Way Communication

Vue.Js is an excellent option for you because it encourages two-way communication. This has become possible with the MVVM architecture to handle HTML blocks. In this way, Vue.Js is very similar to Angular.Js, making it easier to handle HTML blocks as well.

With Vue.Js, two-way data binding is straightforward. This means that any changes made by the developer to the UI are passed to the data, and the changes made to the data are reflected in the UI.

This is also one reason why Vue.Js is also known as reactive because it can react to changes made to the data. This sets it apart from other libraries such as React.Js, which are designed to support only one-way communication.

#6 Detailed Documentation

One essential thing is well-defined documentation that helps you understand the required mechanism and build your application with ease. It shows all the options offered by the framework and related best practice examples.

Vue has excellent docs, and its API references are one of the best in the industry. They are well written, clear, and accessible in dealing with everything you need to know to build a Vue application.

Besides, the documentation at Vue.js is constantly improved and updated. It also includes a simple introductory guide and an excellent overview of the API. Perhaps, this is one of the most detailed documentation available for this type of language.

#7 Large Community Support

Support for the platform is impressive. In 2018, support continued to impress as every question was answered diligently. Over 6,200 problems were solved with an average resolution time of just six hours.

To support the community, there are frequent release cycles of updated information. Furthermore, the community continues to grow and develop with backend support from developers.



Wrapping Up

VueJS is an incredible choice for responsive web app development. Since it is lightweight and user-friendly, it builds a fast and integrated web application. The capabilities and potential of VueJS for web app development are extensive.

While Vuejs is simple to get started with, using it to build scalable web apps requires professionalism. Hence, you can approach a top Vue js development company in India to develop high-performing web apps.

Equipped with all the above features, it doesn't matter whether you want to build a small concept app or a full-fledged web app; Vue.Js is the most performant you can rely on.

Original source

 

#vue js development company #vue js development company in india #vue js development company india #vue js development services #vue js development #vue js development companies