6 times Vue.js saved my day

Angular

Vue

React

Hyperapp

Ember

const post = {
    body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
    likes: 12,
    comments: 14
}
<div class="post">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

    <span class="likes">12 likes</span>
    <span class="comments">14 comments</span>
</div> 
    
<div class="post">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

    <span class="likes">12 likes</span>
    <span class="comments">14 comments</span>
</div> 
    
const post = {
    body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
    likes: 12,
    comments: 14
}
var post = document.querySelector('.post');

var likes = post.querySelector('.likes');
var comments = post.querySelector('.comments');

likes.textContent = post.likes;
comment.textContent = post.comments;
<div class="post">
    <p>{{ post.body }}</p>

    <span class="likes">{{ post.likes }}</span>
    <span class="comments">{{ post.comments }}</span>
</div> 
    
const post = {
    body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
    likes: 12,
    comments: 14
}
<div class="post">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

    <span class="likes">12 likes</span>
    <span class="comments">14 comments</span>
</div> 
    
var post = document.querySelector('.post');

var likes = post.querySelector('.likes');
var comments = post.querySelector('.comments');

likes.textContent = post.likes;
comment.textContent = post.comments;
<div class="post">
    <p>{{ post.body }}</p>

    <span class="likes">{{ post.likes }}</span>
    <span class="comments">{{ post.comments }}</span>
</div> 
    
const post = {
    body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
    likes: 12,
    comments: 14
}
<div class="post">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

    <span class="likes">12 likes</span>
    <span class="comments">14 comments</span>
</div> 
    
<div class="post">
    <p>{{ post.body }}</p>

    <span class="likes">{{ post.likes }}</span>
    <span class="comments">{{ post.comments }}</span>
</div> 
    
setState({
    foo: 'bar'
});
this.foo = 'bar'
const post = {
    body: 'Lorem ipsum dolor sit amet.',
    likes: 12,
    comments: 14
}
<div class="post">
    <p>Lorem ipsum dolor sit amet</p>

    <span class="likes">12 likes</span>
    <span class="comments">14 comments</span>
</div> 
    
<template>
    <div>{{ name }}</div> 
</template>

<script>
export default {
    name: 'MyComponent' 
};
</script>

<style>
div { color: white; }
</style>
<template>
    <div>{{ name }}</div> 
</template>

<script>
export default {
    name: 'MyComponent',
    data() {
        return {
            name: 'foo'
        };
    }
};
</script>

<style>
div { color: white; }
</style>
export default {
    name: 'MyComponent',
    data() {
        return {
            name: 'foo'
        };
    }
    render(h) {
        h('div', [this.name]);
    }
};
<template>
    <div>{{ name }}</div> 
</template>

<script>
export default {
    name: 'MyComponent',
    data() {
        return {
            name: 'foo'
        };
    }
};
</script>

<style>
div { color: white; }
</style>
export default {
    name: 'MyComponent',
    data() {
        return {
            name: 'foo'
        };
    }
    render(h) {
        h('div', [this.name]);
    }
};
{
    tag: 'div',
    children: ['foo']
}
<template>
    <div>{{ name }}</div> 
</template>

<script>
export default {
    name: 'MyComponent',
    data() {
        return {
            name: 'foo'
        };
    }
};
</script>

<style>
div { color: white; }
</style>
export default {
    name: 'MyComponent',
    data() {
        return {
            name: 'foo'
        };
    }
    render(h) {
        h('div', [this.name]);
    }
};
{
    tag: 'div',
    children: ['foo']
}
<div>foo</div>

<keep-alive /> components

Highly reusable components with
scoped slots

[
    {
        "name": {
            "first": "juanita",
            "last": "adams"
        },
        "address": "887 james st, port macquarie, south australia",
        "email": "juanita.adams@example.com",
        "avatar": "https://randomuser.me/api/portraits/thumb/women/70.jpg"
    },
    {
        "name": {
            "first": "alba",
            "last": "hubert"
        },
        "address": "7534 place de l'abbé-basset",
        "email": "alba.hubert@example.com",
        "avatar": "https://randomuser.me/api/portraits/thumb/women/12.jpg"
    }
]

Shipping less code with Async components

Shipping lesser code with modern mode

Text

6-times-vuejs-saved-my-day

By Prashant Palikhe

6-times-vuejs-saved-my-day

  • 591