Abdullah MARA

UI/UX Developer

t:@zullmara

g:@iltegin

Why vue.js ?

Extendable Data bindings
Plain JS object models
Actual DOM
Building UIs by composing components
Mixing & matching small libraries

Fast (very fast)

Simple

 

How Changes Are Tracked

STATE MANAGEMENT

without redux, flux and vuex 

https://www.patreon.com/evanyou

  • vue-router: component-oriented client-side routing solution for single page applications

  • vuex: flux-inspired state management architecture for large scale applications

  • vue-loader/vueify: bundler plugins to enable single file components

  • vue-devtools: Chrome extension for debugging Vue.js application

  • vue-cli: quick project scaffolding with ready-to-go build & test setup

              TOP 5

    
    <div id="demo">

    
      <p>{{message}}</p>
    

      <input v-model="message">
    

    </div>
    
    var VueInstance = new Vue({


      el: '#demo',


      data: {
        message: 'Hello Vue.js!'
      }



    })

1

1

2

2

2

}

Directive

Component

Mixin

 

Vue.directive('my-directive', {
  bind: function () {
    // do preparation work
    // e.g. add event listeners or expensive stuff
    // that needs to be run only once
  },
  update: function (newValue, oldValue) {
    // do something based on the updated value
    // this will also be called for the initial value
  },
  unbind: function () {
    // do clean up work
    // e.g. remove event listeners added in bind()
  }
})

Directive

<template>
    <div id="todo-app">
        <input type="text" v-model="todo">
        <button @click="addTodo">Add</button>
        <ul>
            <li v-for="todo in todos">
                {{todo.text}}<button @click="removeTodo">Romove</button>
            </li>
        </ul>
        <!-- <Todos-component :todos="todos" :add="addTodo" :remove="removeTodo"></Todos-component> -->
    </div>
</template>

<script>
    import TodosComponent from 'components/TodosComponent'

    export default {
        props: ['todos'],
        props: {
            todos:{
                required: true
            }
        },
        data () {
            return {
                todo:"",
                todos: ["Kilo ver","Spora git","Sağlıklı beslen"],
                // todos: this.todos
            }
        },
        components: {
            TodosComponent  // Register component
        },
        methods: {
            addTodo(){
                // bla bla 
            },
            removeTodo(){
                // bla bla 
            }
        }
    }
</script>

Component

vuejs.org

github.com/vuejs/vue

forum.vuejs.org

gitter.im/vuejs/vue

twitter.com/vuejs

Community

+

+

https://github.com

vuejs/vue/issues/2873

/vuejs/awesome-vue

/iltegin/vue-echarts

/iltegin/cliv

 

https://echart-vue.herokuapp.com/

Projects Using Vue.js

FilterBlend

https://github.com/ilyashubin/FilterBlend

​Open source

Reddit News - Chrome Ext.

https://github.com/Mati365/reddit-news

App/Websites

Facebook News Feed

https://newsfeed.fb.com/

Interactive Experiences

Avantaj

Hızlı 

Basit

Duyarlı ,Tepkili (Reactive)

Yeniden Kullanılabilirlik (Reusable Components)

Genişletilebilirlik

Sürdürülebilirlik

Ufacık 17kb min+gzip (React 15 is 44kb min+gzip)

Saf JS

Backend ve Frontend kısmı kolayca ayrılabilir

Dezavantaj

Sunucu tarafında kullanılamıyor (2.0'da gelicek)

 

Komünitisi yeterli değil (Hızla gelişiyor)

 

Native Uygulama Geliştirilemiyor (React Native Gibi)

Vue Cli

https://github.com/vuejs/vue-cli 

DEMO

Çalışma Ortamı Kurulumu

?

 

deck

By Abdullah Mara

deck

  • 210