Vue.js Digest 🇷🇺 🇺🇸
39 subscribers
389 photos
745 links
Дайджест новостей из мира vuejs
Download Telegram
TIL about specific Array combination types

https://dev.to/vanquard/til-about-specific-array-combination-types-28bo
Okay, so its not actually called "specific Array combination types", but that was the best description I had for it, before I looked it up.

Its actually called "Tuple Types" and the documentation can be found here: https://www.tutorialsteacher.com/typescript/typescript-tuple
I'll come back to why this blew my mind today, but first, lets scroll back a bit, to some of my first steps into JS/TS programming. I started my programming career in Java, and one of the things that annoyed the hell out of me, was the fact that I could only have 1 object returned from a function (This was before the Pair class was introduced).
But in JS we can easily just return an array with 2 values:



const someFunction = () => {
return ['Mathias', 28];
}


And combined with some destructuring on the recieving, it was all nice and easy:



const [myName, myAge] = someFunction();





Adding types

Until today I never had to add types onto a scenario like this, usually when I work with arrays, I either just do a basic string[], or when its required in complex object scenarios: Array<{name: string, age: number}>.

But with the tuples we can actually avoid naming them and just say the return type for our function is [string, number]:



const someFunction = (): [string, number] => {
return ['Mathias', 28];
}





Vue relation

I came across this when I working with Vue2 combined with TS, and was trying to create a v-for loop over a Map, but Vue2 did not support this, so I had to come up with a different approach that supported the same end goal.
So this is where the new tuples came in handy! Given an example with some data in a Map:



const map = new Map<string, object>();
map.set('key1', {data: 'lots of data'});
map.set('key2', {data: 'more data'});


I could then destructure it into an array like so:



const asArray = ...map.entries();
// Yielding:
[
['key1', {data: 'lots of data'}],
['key2', {data: 'more data'}],
]


And in order to Type this we now have:



const asArray: Array<[string, object]> = ...map.entries();


Thank you for reading this far, hope you gained something from this post.
Best Black Friday Deals for Developers

https://dev.to/jranandj/best-black-friday-deals-for-developers-38g7
Creative Tim

Best premium templates and UI kits to save plenty of your development time.With over 39000+ Github stars, Review - 4.5/5 over 20,000 developers
Get 80% off for 100 UI Kits and Dashboards based on various tech stacks including Angular, Vue, React, etc…
Discount: 80% OFF

Availability: 22nd Nov - 3rd Dec 2021

Coupon Code: not needed
Website



VueSchool

At Vue School, you’ll learn Vue.js and modern, cutting-edge front-end technologies from core-team members and industry experts with premium tutorials and video courses.



You will get


On top of over 33 courses, you get full access to the Vue 3 Masterclass.
A comprehensive guide to developing modern Vue Single Page Applications.
140+ lessons and 15 hours of content all wrapped up into one course.
Real-World Knowledge of Vue.js by practically building a complete forum from scratch.

Discount: 40% OFF

Availability: available now

Coupon Code: not needed
Website



Wrap Pixel

Get 25 Admin Dashboard Templates & Website Template in price of One Template



Includes


11 Bootstrap Themes
8 Angular Templates
4 React Templates
Vuejs Templates

Discount: 95% OFF

Availability: 16th Nov - 5th Dec 2021

Coupon Code: BF2021
If you don’t want to buy a bundle, you can buy single product with 50% OFF
Website



Gridbox

If you’re a developer working on multiple side projects or startup ideas then you should try Gridbox. A powerful low-code website builder made for web developers like you that allows you drag and drop and write custom HTML, CSS and JS code.
40% Off - Yearly



You will get


Unlimited Projects / Websites
Private Projects
Deploy to Netlify
Access to PRO Bootstrap & Bulma components
Access to PRO Templates

Discount - 40% OFF

Availability - Now - Nov 30, 2021

Coupon Code - FRIDAY40
Website



BlueHost

Planning to set up a Wordpress site, then you can make use of Bluehost.
Powering over 2 million websites, Bluehost offers the ultimate WordPress platform. Tuned for WordPress, we offer WordPress-centric dashboards and tools along with 1-click installation, a

FREE domain name, email, FTP, and more. Easily scalable and backed by legendary 24/7 support by in-house WordPress experts.
Discount - Up to 75% OFF Websites & Hosting

Availability - Now
Website



DivJoy

If you’re planning to build a MVP or some cool project using React without writing much code then you need to try Divjoy - Powerful React codebase generator
Discount - Up to 60% Off

Coupon Code - None

Availability - 22 of 50 claimed (Price returns to $249 after all are claimed)



You will get


Lifetime access
Unlimited Project
Export High Quality React Code

Website
VueJS: The Minimum Vars to Use a Component

https://paulxiong.medium.com/vuejs-the-minimum-vars-to-use-a-component-1e3ea89430ff?source=rss------vuejs-5
Div class name, component name, import name, export name, … all those confused me when I was studying Vue.JSContinue reading on Medium »
DAY 01 - 100 Days With Vue

https://dev.to/tahsin52225/day-01-100-days-with-vue-22fb
At last, I have started to learn Vue.js. Well, starting is the hard part of learning. Today I have learned about how to integrate Vue CDN and add Vue property to your project.

It's simple just add Vue CDN at the end of your Html file. Vue is ready for use.



Vue CDN


<script src="https://unpkg.com/vue@next" defer></script>





Adding Vue property in a particular HTML section

In your app.js (External JS file) file you have to create a Vue app and mount it into a particular section. Well you can use a variable to declare the Vue app



const app = Vue.createApp({});


To add this Vue app into your HTML code you need to use the mount function to this object. Mount accepts a string value of a CSS selector in which this Vue code applies. Here we have a section that has an id named #user-goal



const app = Vue.createApp({});
app.mount('#user-goal');


Nice ! Vue is mounted on that section



"data" property of Vue object

"data" is a predefined property of the Vue object which holds all the variables of the Vue app. "data" property always returns an object which holds a collection of variable names and values in a key-value pair. the variable value can be anything String, Number

, Boolean etc.



const app = Vue.createApp({
data(){
return {
variable_name : "variable_value"
}
}
});
app.mount('#user-goal');





"Interpolations" Showing data property value

"Interpolations" is a fancy name of handlebars, if you want to show your variable value into HTML. Just use double curly braces and write the variable name which you had declared on the data property.



<p>{{ variable_name }}</p>


"Interpolations" tells Vue to replace the variable name with the actual value of it. so you can't use "Interpolations" outside Vue mounted section.



"v-bind" attribute of Vue

Well, sometimes we need to pass value to Html attribute. For example, let's say you want to return a link to an anchor tag 'href' attribute, but if you use "Interpolations" it won't work. You need to use the "v-bind" attribute for that.

"v-bind" is a Vue attribute that helps to bind any Html attribute to Vue variables. Example :



<p> <a v-bind:href="variable_name">Link </a></p>


P.S: There are more uses of v-bind and we can use the shorter version of v-bind, But for now, let's stick with this.



"v-html" attribute of Vue

Now let's say you want to show an Html code using a variable. If you use only "Interpolations" it will show markup value and won't fulfill the purpose. For that, you need to use v-html attribute.

Example:

In app.js



const app = Vue.createApp({
data(){
return {
variable_name : "<h1> Hello this is value </h1>"
}
}
});
app.mount('#user-goal');


In index.html



<p v-html="variable_name"></p>





"methods" property of Vue object

Till now, we have used only static data. We need to add some dynamic feel to it. To do this, we need to use the "methods" property of the Vue object. "methods" is a predefined property that accepts only JS objects that hold the collection of functions.



const app = Vue.createApp({
data(){
return {
variable_name : "<h1> Hello this is value </h1>"
}
},
methods: {
function_name: function () {
//do something
}
}
});
app.mount('#user-goal');


We can use direct methods in "Interpolations"

In index.html



<p> {{ function_name() }}</p>





Use "data" property into "methods"

Basically we need to use variable into methods for that we just need to use "$this" keyword.



const app = Vue.createApp({
data(){
return {
variable_name : "<h1> Hello this is value </h1>"
}
},
methods: {
function_name: function () {
$this.variable_name = "new value"
}
}
});
app.mount('#user-goal');





Github Practice Code






Tahsin-Ahmed52225
/
100days-with-Vue
Vue 3 API Composition

https://medium.com/wedge-digital/vue-3-api-composition-e4317451cc04?source=rss------vuejs-5
VueJs chez Wedge DigitalContinue reading on Wedge Digital »
How to Increment and Decrement Number Using Vue 3 Composition Api

https://dev.to/larainfo/how-to-increment-and-decrement-number-using-vue-3-composition-api-48c7
In this tutorial we will create simple vuejs counter app using options api and composition api.
Quick Way to Start Project with Vite Vue 3 Headless UI Tailwind CSS



Simple Vue 3 Counter App using (Options Api) Example




Counter.vue


<template>
<div class="flex items-center justify-center gap-x-4">
<button
class="px-4 py-2 text-white bg-blue-600 focus:outline-none"
@click="increment">
Increment
</button>
{{ number }}
<button
class="px-4 py-2 text-white bg-red-600 focus:outline-none"
@click="decrement">
Decrement
</button>
</div>
</template>
<script>
export default {
data() {
return {
number: 0,
};
},
methods: {
increment() {
this.number++;
},
decrement() {
this.number--;
},
},
};
</script>






Vue 3 Counter App using (Composition Api) Example




Counter.vue


<template>
<div class="flex items-center justify-center gap-x-4">
<button
class="px-4 py-2 text-white bg-blue-600 focus:outline-none"
@click="increment">
Increment
</button>
{{ number }}
<button
class="px-4 py-2 text-white bg-red-600 focus:outline-none"
@click="decrement">
Decrement
</button>
</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const number = ref(0);
function increment() {
number.value++;
}
function decrement() {
number.value--;
}
return { number, increment, decrement };
},
};
</script>
CRUD Laravel 8 Tutorial + Inertia.js

https://medium.com/@premanterminal.id/crud-laravel-8-tutorial-inertia-js-ffaafd5f7635?source=rss------vuejs-5
Hewo netizen produktif, kali ini aku akan bagi-bagi ilmu dikit. 
Sudah pada pernah pakai laravel? Di sesi kali ini aku akan perkenalin…Continue reading on Medium »
NuxtJS v.2.15.8. How to hide private keys?

https://dev.to/vadiminsk/nuxtjs-v2158-how-to-hide-private-keys-3h62
Hello everyone! Currently I am working on PWA project. We build pwa with nuxt and drupal as backend. So I have a lot of secrets from backend and don`t know where store it.

Can you share your best practices?
A developer tool to traverse your Vue component tree

https://vuejsexamples.com/a-developer-tool-to-traverse-your-vue-component-tree/
A developer tool to traverse your Vue component tree.
Simple Black Friday

https://dev.to/core_ui/simple-black-friday-1eep
Not long ago, a guy, let’s name him “Kyle” asked us about CoreUI’s Tips for developers to create stunning web or app.
Answer was easy: “keep it simple” :)
“Everything should be made as simple as possible, but no simpler.”

Albert Einstein
You probably know Steve Krug’s “Don’t let me think” — it also a “bible” for CoreUI’s team. When you keep your design simple, then you’ll easily understand the principles of intuitive navigation and information design.

There’re too many overloaded products available on the market, that’s why we’ve always wanted to keep CoreUI as simple as it’s possible.

So we decided to master a CoreUI as one, comprehensive ecosystem or rather tool for the most significant UI needs.

When designing a stunning web or an app, it’s good to stick to valuable tools which will make your work easier. As an example, we can have “CoreUI’s Triada”:

Admin Templates
UI Components
Icons

They are all available for the most popular frameworks like Angular, Vue, Bootstrap and React. Such universal tools let the designer to be more flexible when working on different projects.
Keep it simple and responsive — the rest will follow.
PS Black Friday obliges… If you’re ready for -70% bounce here: Simple CoreUI Black Friday
Intro To Using Pinia For State Management In VueJS

https://dev.to/aaronksaunders/intro-to-using-pinia-for-state-management-in-vuejs-1n39
Intro To Using Pinia For State Management In VueJS
Pinia - The Vue Store that you will enjoy using... Intuitive, type safe, and flexible Store for Vue
I guess this is the new goto for state management in Vue3 and what is really awesome is that it works great with vue-devtools
This is a simple application that allows you to add students to and array that is managed in the global store and then perform the traditional CRUD actions against the store.
We show how to subscribe to changes in the store for updating the user interface
We discuss some of the benefits of this approach and its integration of typescript and how great it works with the vue-devtools.






Source Code






aaronksaunders
/
vite-pinia










Vue 3 + Typescript + Vite
This template should help get you started developing with Vue 3 and Typescript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.

Recommended IDE Setup


VSCode + Volar



Type Support For .vue Imports in TS
Since TypeScript cannot handle type information for .vue imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in .vue imports (for example to get props validation when using manual h(...) calls), you can enable Volar's .vue type support plugin by running Volar: Switch TS Plugin on/off from VSCode command palette.




View on GitHub
Free Tailwind CSS And Vue.js Admin Dashboard Template

https://vuejsexamples.com/free-tailwind-css-and-vue-js-admin-dashboard-template/
Free Tailwind CSS And Vue.js admin dashboard template
A Grouped Quotes App Built With Vue

https://vuejsexamples.com/a-grouped-quotes-app-built-with-vue/
A Grouped Quotes App Built With Vue
Pros and Cons of Vue.js Development Services

https://dev.to/steven_d_gital/pros-and-cons-of-vuejs-development-services-14hi
For IT organizations, it is crucial to use innovative technologies for their clients to drive revenue. Several times people are discussing the benefits of using the Vue.js programming language instead of any other and will get the conclusion that working with experienced Vue.js developer is always a better idea.
In the article, we will discuss Vue.js, the strengths and weaknesses of experts of Vue.js, and features and functions Vue.js offers for high-quality application development. Stay tuned!



What is Vue.js development?

Vue.js is developed by Evan You and It is a JavaScript-based framework first released in 2014. It is a framework to develop single-page applications. But within time, the range of Vue.js development expanded significantly.
Vue.js framework is very flexible. Vue.js can perform equally well in any kind of app development and web development.



Pros of Vue.js development

Vue.js framework offer infinite advantages compare to others. We will have a look at those advantages in this article.
Lightweight
Lightweight is one of the important pros of Vue.js that developer is looking for while developing. Vue.js is very convenient for developers to use for any kind of complex project.
Due to the lightweight of Vue.js, Installation and loading will be faster and it is good from the perspective of SEO and UX. Vue.js developers need to spend less time on optimization.
User-friendly
Many experts have to say that Vue does not need a steep learning curve, which is more easier and beneficial for fresher. With the not on the learning curve, Vue.js only needs the knowledge of HTML, JavaScript, and CSS. Vue.js offers the browser plugin under Chrome and Firefox, which make things easier for developers.
Reusable
Vue.js can be reusable for developers who have enough experience and tech-savvy. Vue.js helps programmers to write their own code so they can use it for various functions if needed.
Ease of use
One of the main reasons behind the success of Vue.js is it is easy to use with minimal effort. Vue.js has all the necessary codes in one file. With such easy use and flexibility, developers can develop any kind of structure for applications.
Integration
Vue.js uses syntax and virtual DOM like Angular in the same way. According to Evan You, Angular offers data-managed DOM and data binding, It is just amazing.
Vue.js developers don’t have to match with DOM on their own. This makes the Vue.js development easier.
Compatibility
To facilitate integration with existing applications, Vue.js used HTML to render objects. Vue.js is more flexible compared to other frameworks as it allows developers to write their own discretion with JSX, HTML, or JS. Based on the structure, Vue.js is similar to React and Angular. So you can easily switch from Angular or React to Vue.js.
Customization
Vue.js offer developers the easy access of all the features and functions. Each part of framework performs its function, So you can quickly adapt and implement the changes if needed.



Cons of Vue.js development

We all know that every framework has some cons, no framework could be perfect. And Same goes with Vue.js framework.

Lack of plugins;
Limitations in making use of the community;
Difficulties with mobile support;
Lack of scalability;
Difficulties with two-way binding;
Lack of highly experienced experts;
Excessive code flexibility.




Bottom line

If you have a wish to develop functional SPA or UI, pros of Vue.js always comes in first. Whether you want to develop the small project or large small, Vue.js will be always a perfect choice for development work.
If you want to inquire about Vue.js development services, Contact the best Vue.js development company and Hire Vue.js developer. Experience and talented Vue.js developers will help you to achieve your goals and profitable projects.
A nuxt invoice app using nuxt.js and firebase

https://vuejsexamples.com/a-nuxt-invoice-app-using-nuxt-js-and-firebase/
A nuxt invoice app using nuxt.js and firebase