Vue.js is a progressive JavaScript framework for building user interfaces. It focuses only on the view layer and makes no assumptions about the rest of your code. Vue.js allows you to progressively adopt it into existing projects and features simple and flexible APIs. Performance benchmarks show Vue.js to be one of the fastest frameworks available.
Daftar Isi
I. Pengenalan ReactJs
II. Instalasi
III. Dasar-dasar ReactJs
1. JSX
2. Component
3. State
4. Props
IV. Component Lifecycle
V. Latihan
1. Todo List
2. React Router
** BatamJS Community**
Vue.js is a JavaScript framework for building user interfaces that has gained popularity recently. It is smaller in size than Angular and React but provides similar functionality like virtual DOM and one-way data binding. Vue.js applications can range from simple single-page apps to complex projects with nested components. Key aspects of Vue.js include reusable components, templates with directives like v-if and v-for, lifecycle hooks, and the use of Vuex for state management and Vue Router for routing. The ecosystem around Vue.js continues to grow with tools, libraries, and support from companies using it in production.
Modules are containers that define an AngularJS application and hold parts like controllers, services, and directives. A module is used as the main entry point and starting point of an app. Controllers must belong to a module to avoid issues like global overriding. To create a module, use the angular.module method, passing in a name and empty array. Controllers can then be added to the module using the module's controller method.
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked ChangesJiyeon Seo
인프콘 2022에서 나눈 Stacked Changes 이야기 입니다.
https://infcon.day/speaker/%ec%84%9c%ec%a7%80%ec%97%b0-%ec%bd%94%eb%93%9c%eb%a6%ac%eb%b7%b0-%ea%b9%83%ed%97%99/
ReactJS is arguably the most popular Javascript framework around for web development today. With more and more teams exploring and adopting React, here is TechTalks presentation elaborating fundamentals of React, in a code along session
Slides for the talk with Sonia Pini @Codemotion Milan 2018
So you want to build your (Angular) Component Library? We can help
https://milan2018.codemotionworld.com/conference/
Most modern Front-End frameworks are Component-Oriented, taking advantage of encapsulation and separation of responsibilities to improve developer productivity and application robustness. However, to fully exploit the power of components, you need to aggregate them in a consistent and modular set. In this talk we share our experience in building several component libraries, from API Design concepts to advanced component interaction patterns, from packaging and documentation to refactoring & interoperability. Examples are Angular-based, but most concepts apply to all Front-End dev approaches.
This document provides an introduction to ReactJS, including what it is, why people use it, and some basic concepts. It discusses how React is a declarative, efficient JavaScript library for building user interfaces. It also highlights some common use cases for React like building presentations, virtual reality experiences, shopping carts, online editors, and mobile apps. The document then covers prerequisites for learning React and introduces some of the main components that make up the React ecosystem like JSX, Babel, and module bundlers. It concludes with a quick "Hello World" example and outlines further topics to explore like components, state management, and other advanced React patterns.
Tutorial Videos: https://www.youtube.com/playlist?list=PLD8nQCAhR3tQ7KXnvIk_v_SLK-Fb2y_k_
Day 1 : Introduction to React, Babel and Webpack
Prerequisites of starting the workshop ( Basic understanding of Node & Express )
What is Virtual DOM?
What is React and why should we use it?
Install and set up React:
a-Using create-react-app
b-From scratch using Babel and Webpack. We will use Webpack Dev Server.
Day 2 : React Basic Concepts
Types of Components: Class-based and Functional based Components
Use of JSX
Parent, Child, and Nested Components
Difference between State and Props
Create and Handle Routes
Component Lifecycle Methods
Create a form and handling form inputs
Use of arrow functions and Spread Operator
Day 3: Advanced Concepts in React
Use of Refs
What are Higher Order Components( HOC )?
How to use HOC
Understanding Context in React
The document discusses design patterns and the Model-View-Controller (MVC) architectural pattern. It describes the 23 Gang of Four design patterns categorized into creational, structural, and behavioral patterns. It then explains the MVC pattern, how it separates an application into the model, view, and controller components, and the typical request flow from request to response. Finally, it provides a brief history of ASP.NET MVC and the technologies used in ASP.NET MVC development.
Vue.js is an open-source progressive framework for building user interfaces that focuses on the view layer. It has a virtual DOM and reactive components. Its core is small and works well with companion libraries. Single file components allow importing of templates, logic, and styles. Popular companion libraries include Vuex for state management and Vue Router for routing. The Vue CLI makes it easy to scaffold Vue projects with features like routing, lazy loading, and preloading for improved performance.
Vue.js is a progressive JavaScript framework that focuses on building user interfaces and is used for single-page applications. It was created by Evan You and released in 2014. Vue.js uses declarative templates and reactive data binding to render the view layer for an application. Templates in Vue use HTML-based syntax with directives prefixed with v- to dynamically bind expression results. Common directives include v-bind, v-if, and v-for. Vue.js applications can be built with its core library or integrated with other libraries and frameworks.
- React is a JavaScript library for building user interfaces that uses a virtual DOM for faster re-rendering on state changes.
- Everything in React is a component that can have states, props, and lifecycle methods like render(). Components return JSX elements.
- Props are used for passing data to components in a unidirectional flow, while states allow components to re-render on changes.
- The render() method returns the view, accessing props and state values. Forms and events also follow React conventions.
This document discusses consuming RESTful APIs using Swagger v2.0. It provides an overview of Swagger and how it can be used to automatically generate client code for APIs in multiple languages like Android and iOS. It also discusses some common issues with code generation and outlines Outware's approach to address these issues, including customizing the code generation, publishing clients as dependencies, and maintaining consistency across platforms.
ReactJs is a JavaScript library for building user interfaces that uses components and a virtual DOM for efficient updates. It is intended to make development of UI components easy and modular. React implements unidirectional data flow and uses components, a virtual DOM, JSX syntax, and isomorphic rendering to provide a declarative and efficient way to build user interfaces.
Model proses rekayasa perangkat lunak yang dijelaskan dalam dokumen tersebut meliputi model sekuensial linier, prototipe, RAD, dan evolusioner. Model-model tersebut masing-masing memiliki kelebihan dan kekurangan dalam pengembangan perangkat lunak.
The document summarizes Kiran Abburi's presentation on React. It covers:
1. The agenda includes basics of React, composition, data flow, JSX, React APIs, and building a todo app.
2. React is a JavaScript library for building user interfaces and uses a component-based approach to build encapsulated pieces.
3. Data in React flows in a uni-directional way through properties (props) and state, where props are passed from parent to child components and state is internal to a component.
React js is a JavaScript library created by Facebook in 2013 for building user interfaces and rendering UI components. It uses a virtual DOM to efficiently update the real DOM and allow building of reusable UI components. React code can be written directly in HTML or using JSX syntax and by setting up a React app with Node.js and NPM. Components are the building blocks of React and can be class or function based. Props and state allow passing data to components and re-rendering components on state changes.
This document provides an introduction and overview of Vue.js, including:
- What Vue.js is and how it compares to other frameworks
- The basic concepts of single file components and getting started quickly
- How to create a development environment in one minute
- Core Vue.js features like directives, computed properties, binding styles and classes, and list rendering
- Links to additional resources on using Vue.js for routing and the latest news
Angular vs React vs Vue | Javascript Frameworks Comparison | Which One You Sh...Edureka!
** Full Stack Web Development Training: https://www.edureka.co/masters-program/full-stack-developer-training **
This Edureka tutorial on Angular vs React vs Vue will help you in demystifying the fundamental differences between each of these JavaScript Frameworks. Following are the topics which are used for comparison:
Architecture Type
DOM
Application Type
Language Preference
Scalability
Ease Of Deployment
Data Flow
Learning Curve
Market Trend
Community & Support
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Ambiente Livre
Pentaho com Hadoop permite que cientistas de dados analisem grandes volumes de dados de forma escalável e distribuída. O palestrante discute como ferramentas como Pentaho, Hadoop, HDFS e MapReduce podem ser usadas juntas para extrair valor de big data através de análises preditivas em tempo real.
Tutorial ini memberikan panduan singkat tentang Code Igniter (CI), framework PHP yang populer. Secara garis besar, tutorial ini menjelaskan tentang (1) pengertian dan manfaat framework, (2) pengenalan CI serta cara instalasi dan konfigurasinya, (3) konsep MVC yang diterapkan CI, dan (4) contoh koding dasar menggunakan CI seperti membuat halaman "Hello World", form input, dan menggunakan library database.
Slides for the talk with Sonia Pini @Codemotion Milan 2018
So you want to build your (Angular) Component Library? We can help
https://milan2018.codemotionworld.com/conference/
Most modern Front-End frameworks are Component-Oriented, taking advantage of encapsulation and separation of responsibilities to improve developer productivity and application robustness. However, to fully exploit the power of components, you need to aggregate them in a consistent and modular set. In this talk we share our experience in building several component libraries, from API Design concepts to advanced component interaction patterns, from packaging and documentation to refactoring & interoperability. Examples are Angular-based, but most concepts apply to all Front-End dev approaches.
This document provides an introduction to ReactJS, including what it is, why people use it, and some basic concepts. It discusses how React is a declarative, efficient JavaScript library for building user interfaces. It also highlights some common use cases for React like building presentations, virtual reality experiences, shopping carts, online editors, and mobile apps. The document then covers prerequisites for learning React and introduces some of the main components that make up the React ecosystem like JSX, Babel, and module bundlers. It concludes with a quick "Hello World" example and outlines further topics to explore like components, state management, and other advanced React patterns.
Tutorial Videos: https://www.youtube.com/playlist?list=PLD8nQCAhR3tQ7KXnvIk_v_SLK-Fb2y_k_
Day 1 : Introduction to React, Babel and Webpack
Prerequisites of starting the workshop ( Basic understanding of Node & Express )
What is Virtual DOM?
What is React and why should we use it?
Install and set up React:
a-Using create-react-app
b-From scratch using Babel and Webpack. We will use Webpack Dev Server.
Day 2 : React Basic Concepts
Types of Components: Class-based and Functional based Components
Use of JSX
Parent, Child, and Nested Components
Difference between State and Props
Create and Handle Routes
Component Lifecycle Methods
Create a form and handling form inputs
Use of arrow functions and Spread Operator
Day 3: Advanced Concepts in React
Use of Refs
What are Higher Order Components( HOC )?
How to use HOC
Understanding Context in React
The document discusses design patterns and the Model-View-Controller (MVC) architectural pattern. It describes the 23 Gang of Four design patterns categorized into creational, structural, and behavioral patterns. It then explains the MVC pattern, how it separates an application into the model, view, and controller components, and the typical request flow from request to response. Finally, it provides a brief history of ASP.NET MVC and the technologies used in ASP.NET MVC development.
Vue.js is an open-source progressive framework for building user interfaces that focuses on the view layer. It has a virtual DOM and reactive components. Its core is small and works well with companion libraries. Single file components allow importing of templates, logic, and styles. Popular companion libraries include Vuex for state management and Vue Router for routing. The Vue CLI makes it easy to scaffold Vue projects with features like routing, lazy loading, and preloading for improved performance.
Vue.js is a progressive JavaScript framework that focuses on building user interfaces and is used for single-page applications. It was created by Evan You and released in 2014. Vue.js uses declarative templates and reactive data binding to render the view layer for an application. Templates in Vue use HTML-based syntax with directives prefixed with v- to dynamically bind expression results. Common directives include v-bind, v-if, and v-for. Vue.js applications can be built with its core library or integrated with other libraries and frameworks.
- React is a JavaScript library for building user interfaces that uses a virtual DOM for faster re-rendering on state changes.
- Everything in React is a component that can have states, props, and lifecycle methods like render(). Components return JSX elements.
- Props are used for passing data to components in a unidirectional flow, while states allow components to re-render on changes.
- The render() method returns the view, accessing props and state values. Forms and events also follow React conventions.
This document discusses consuming RESTful APIs using Swagger v2.0. It provides an overview of Swagger and how it can be used to automatically generate client code for APIs in multiple languages like Android and iOS. It also discusses some common issues with code generation and outlines Outware's approach to address these issues, including customizing the code generation, publishing clients as dependencies, and maintaining consistency across platforms.
ReactJs is a JavaScript library for building user interfaces that uses components and a virtual DOM for efficient updates. It is intended to make development of UI components easy and modular. React implements unidirectional data flow and uses components, a virtual DOM, JSX syntax, and isomorphic rendering to provide a declarative and efficient way to build user interfaces.
Model proses rekayasa perangkat lunak yang dijelaskan dalam dokumen tersebut meliputi model sekuensial linier, prototipe, RAD, dan evolusioner. Model-model tersebut masing-masing memiliki kelebihan dan kekurangan dalam pengembangan perangkat lunak.
The document summarizes Kiran Abburi's presentation on React. It covers:
1. The agenda includes basics of React, composition, data flow, JSX, React APIs, and building a todo app.
2. React is a JavaScript library for building user interfaces and uses a component-based approach to build encapsulated pieces.
3. Data in React flows in a uni-directional way through properties (props) and state, where props are passed from parent to child components and state is internal to a component.
React js is a JavaScript library created by Facebook in 2013 for building user interfaces and rendering UI components. It uses a virtual DOM to efficiently update the real DOM and allow building of reusable UI components. React code can be written directly in HTML or using JSX syntax and by setting up a React app with Node.js and NPM. Components are the building blocks of React and can be class or function based. Props and state allow passing data to components and re-rendering components on state changes.
This document provides an introduction and overview of Vue.js, including:
- What Vue.js is and how it compares to other frameworks
- The basic concepts of single file components and getting started quickly
- How to create a development environment in one minute
- Core Vue.js features like directives, computed properties, binding styles and classes, and list rendering
- Links to additional resources on using Vue.js for routing and the latest news
Angular vs React vs Vue | Javascript Frameworks Comparison | Which One You Sh...Edureka!
** Full Stack Web Development Training: https://www.edureka.co/masters-program/full-stack-developer-training **
This Edureka tutorial on Angular vs React vs Vue will help you in demystifying the fundamental differences between each of these JavaScript Frameworks. Following are the topics which are used for comparison:
Architecture Type
DOM
Application Type
Language Preference
Scalability
Ease Of Deployment
Data Flow
Learning Curve
Market Trend
Community & Support
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Ambiente Livre
Pentaho com Hadoop permite que cientistas de dados analisem grandes volumes de dados de forma escalável e distribuída. O palestrante discute como ferramentas como Pentaho, Hadoop, HDFS e MapReduce podem ser usadas juntas para extrair valor de big data através de análises preditivas em tempo real.
Tutorial ini memberikan panduan singkat tentang Code Igniter (CI), framework PHP yang populer. Secara garis besar, tutorial ini menjelaskan tentang (1) pengertian dan manfaat framework, (2) pengenalan CI serta cara instalasi dan konfigurasinya, (3) konsep MVC yang diterapkan CI, dan (4) contoh koding dasar menggunakan CI seperti membuat halaman "Hello World", form input, dan menggunakan library database.
Tutorial ini membahas cara membuat web service dan client menggunakan Spring Web Services. Langkah-langkahnya meliputi pembuatan project, konfigurasi Spring, pendefinisian endpoint dan interface, serta pengujian client. Web service dibuat untuk melakukan login dengan merespons username tertentu.
Dokumen tersebut membahas tentang implementasi operasi CRUD (create, read, update, delete) menggunakan framework CodeIgniter di PHP. Terdapat penjelasan mengenai pembuatan model, controller dan view untuk melakukan operasi CRUD terhadap database."
Dokumen tersebut membahas tentang konsep MVC, JSON, XML, AJAX, dan WebSocket. Secara ringkas, MVC adalah arsitektur pemrograman yang memisahkan kode menjadi tiga komponen yaitu model, view, dan controller. JSON dan XML digunakan sebagai format pertukaran data, sementara AJAX dan WebSocket memungkinkan komunikasi asinkron antara klien dan server.
JQuery adalah framework Javascript yang memudahkan interaksi antara Javascript dan HTML. Ia dirilis pada tahun 2006 oleh John Resig dan menjadi populer karena kesederhanaan penulisan kode namun hasil yang luas. JQuery merupakan library open source yang hanya berukuran kecil namun fleksibel dengan banyak plugin.
Framework MVC sederhana dibuat dengan PHP untuk memisahkan kode program dari antarmuka. Model bertanggung jawab atas pengelolaan data, view menampilkan antarmuka, dan controller menghubungkan model dan view. Contoh controller blog dan model blog dibuat untuk menampilkan daftar artikel blog dan form tambah artikel.
Dokumen tersebut membahas tentang konsep dasar Object Oriented Programming (OOP) dan beberapa komponen penting dalam pembuatan aplikasi web Java seperti class, object, web component, web container, model-view-controller (MVC) dan Apache Tomcat.
Teks tersebut membahas tentang pemrograman berorientasi objek (OOP) dan konsep class serta object dalam OOP. OOP merupakan paradigma pemrograman yang populer saat ini yang menggunakan class dan object. Class hanya berupa cetak biru sedangkan object merupakan instansiasi dari class.
Teks tersebut membahas perbedaan antara jQuery dan JavaScript. jQuery adalah library JavaScript yang dirancang untuk memudahkan manipulasi dokumen HTML dan interaksi antara JavaScript dengan HTML, sedangkan JavaScript adalah bahasa pemrograman untuk berjalan di browser. jQuery menyederhanakan penulisan kode JavaScript dengan menggunakan objek dan selector CSS.
Aplikasi pemesanan kamar hotel ini memudahkan pelanggan dan admin dalam proses pemesanan dan pengelolaan kamar. Pelanggan dapat melihat detail kamar dan melakukan pemesanan secara online, sedangkan admin dapat melihat data pelanggan yang melakukan pemesanan melalui antarmuka administrasi. Aplikasi ini dibuat menggunakan bahasa pemrograman HTML, CSS, JavaScript, PHP dan database MySQL.
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)riarel
Ringkasan dokumen tersebut adalah:
Dokumen tersebut membahas tentang belajar PHP menggunakan framework Code Igniter, meliputi pengenalan Code Igniter, instalasi, konsep MVC, dan contoh coding dasar menggunakan Code Igniter.
Dokumen tersebut membahas tentang Model-View-Controller (MVC) dan beberapa framework. MVC adalah metode pemrograman yang memisahkan komponen utama aplikasi menjadi model, view, dan controller. Dokumen ini menjelaskan pengertian, sejarah, dan konsep MVC serta beberapa jenis framework PHP dan JavaScript yang populer.
2. 2
Kata Pengantar
Puji dan syukur kehadirat Allah SWT atas limpahan rahmat dan karunianya sehingga Ebook
Mari Mengenal Framework Vue.js tahun 2016 dapat diselesaikan. Buku ini merupakan buku
panduan bagi yang sudah atau akan mempelajari framework javascript di Client Side dan
memberikan petunjuk serta gambaran bagaimana menggunakan framework Vue.js ini.
Terima kasih disampaikan kepada orang tua, partner hidup saya yang selalu memberikan
semangat dalam menyelseikan buku ini. Juga teman-teman dan pihak-pihak yang terkait yang
memberikan saran, kritik dan kontribusi dalam penyelseian buku ini.
Saya menyadari masih banyak terdapat kekuragan dalam buku ini, untuk itu kirik dan saran
terhadap penyempurnaan buku ini sangat diharapkan dapat di kirim ke
[email protected] . Semoga Ebook ini dapat memberi manfaat bagi para pembaca
dan khususnya untuk para developer di Indonesia.
Bandung, 19 Juli 2016
Teten Nugraha S.Kom
3. 3
Vue JS
1. Pendahuluan
- Apa itu Vue.js ?
Dilansir dari situs Vue.js, Vue.js adalah sebuah librari javascript untuk membangun antarmuka
web yang interaktif. Fokus utama Vue.js adalah menyediakan mekanisme Reactive Data
Binding dan menyediakan fungsi untuk mengatur komponen View dengan API yang
sesederhana mungkin.
Vue.js di buat untuk di fokuskan pada komponen Frontend. Jika Anda pernah menggunakan
framework Angular, akan lebih mudah jika menggunakan Vue.js. dan pengalaman saya pun
sangatlah gampang mengintegrasikan Vue.js dengan projek-projek yang sedang saya
kerjakan.
Vue.js adalah framework javascript yang serupa dengan Angular, React, Polymer, Riot dan
lain-lain. Tapi bagaimanapun juga, Vue.js menyediakan kesederhanaan, performance,
flexibility. Dalam situs nya, Anda bisa melihat bagaimana perbandingan Vue.js dengan
framework-framework javascript serupa.
Framework ini ditulis oleh Evan You seorang developer profesional. Bisa dilihat disitus nya
http://evanyou.me/ atau diakun github nya https://github.com/yyx990803 .
- Reactive Data Binding
4. 4
Salah satu fitur yang ditawarkan oleh Vue.js adalah System Reactive Data Binding yang
berfungsi agar data dan DOM tetap terikat bersama-sama. Jika Anda biasanya menggunakan
jQuery secara manual dalam memanipulasi DOM,kode yang ditulis pastilah berulang-ulang
dan rawan kesalahan atau error.
Vue.js juga menganut data-driven. Yang berarti kita menggunakan sintaks khusus dalam
template HTML yang kita gunakan untuk “mengikat” DOM dengan data yang telah kita buat.
Setelah proses binding diciptakan, DOM kemudian akan bersinkronisasi dengan data. Setiap
kali mengubah data, DOM juga akan memperbaruinya (Two Way Data BInding) dan hal ini
membuat kode kita lebih mudah untuk ditulis dan mudah untuk dikembangkan.
- Component System
Component System adalah salah satu konsep yang penting di Vue.js, karena ini adalah sebuah
abstraksi yang mengijinkan kita membangun aplikasi yang besar dan konsep penggunaan
kembali komponen yang sudah dibangun (reusable). Kebanyakan antarmuka dari sebuah
aplikasi bisa menjadi sebuah abstraksi ke dalam bentuk tree sebagai berikut :
Dengan Vue.js, kita bisa memanipulasi seakan-akan kita membuat tag HTML sendiri. Ini
merupakan salah satu fitur Vue.js Custom Element. Dengan Custom Element, kita bisa
membuat elemen-elemen tag HTML sesuai dengan kebutuhan projek kita.
2. Download dan Instalasi Vue.js
Ada beberapa langkah untuk menginstall Vue.js, diantaranya :
a. Download di situs Vue.js
Anda bisa langsung mengakses situs Vue.js di https://vuejs.org/ . di situs tersebut, kita
diberikan dua pilihan alternatif unduh, untuk versi Development dan versi Production.
Khusus untuk versi development yang minified, kita harus lebih hati-hati dalam
menggunakan versi ini, karena versi ini masih dalam tahap pengembangan, jadi kadang-
kadang muncul beberapa bug pada saat kita menggunakan nya.
File Vue.js yang sudah di download tadi, kemudian simpan dalam projek Anda (file html
dan php). Berikut adalah contoh instalasi Vue.js menggunakan cara mendownload.
5. 5
lokal
<html>
<head>
<body>
<script src="js/vue.min.js"></script>
</script>
</body>
</html>
b. Menggunakan CDN
Untuk pilihan ini, kita tidak perlu repot-report menyimpan file Vue.js dalam projek kita.
Yang kita perlukan hanya memanggil file Vue.js ini di situs jsDeliver atau cdnjs dengan
syarat kita sudah terkoneksi ke internet. Contoh nya
https://cdn.jsdelivr.net/vue/1.0.26/vue.min.js atau
https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.min.js .
jsDeliver
<html>
<head>
<body>
<script src="https://cdn.jsdelivr.net/vue/1.0.26/vue.min.js"></script>
</script>
</body>
</html>
CDN
<html>
<head>
<body>
<script src="https://cdn.jsdelivr.net/vue/1.0.26/vue.min.js"></script>
</script>
</body>
</html>
6. 6
c. Menggunakan Bower
Jika sering menggunakan bower, maka lebih mudah lagi. Cukup dengan ketikan sintak
berikut, maka Vue.js sudah terinstall dalam projek Anda.
bower install vue
bower
<html>
<head>
<body>
<script src="bower_components/vue/dist/vue.min.js"></script>
</script>
</body>
</html>
!!!! Dalam buku ini tidak akan membahas mengenai Bower, tapi jika Anda tertarik
mempelajari mengenai bower dan serius mendalami dunia web developer, akan sangat
bermanfaat jika Anda mempelajari mengenai bower khususnya untuk maanjemen asset.
3. Requirement
Kebutuhan / tool yang sudah harus disediakan diantaranya :
a. Text Editor
Ada banyak text editor yang free yang bebas digunakan tanpa harus membeli lisensi
terlebih dahulu. Penulis menggunakan text editor Sublime Text Versi 3 yang sudah diinstal
Emmet (plugin untuk mempercepat penulisan kode HTML). Bisa juga menggunakan
PHPStorm, Aptana, Netbeans, Notepad++ dan lain-lain.
b. Browser
Untuk menampilkan output dari kode yang telah dibuat. Bisa menggunakan Google
Chrome, Mozilla Firefox, Opera dan lain-lain.
Diatas adalah list yang harus sudah diinstall, adapun daftar dibawah ini adalah beberapa tool
tambahan yang bersifat optional yang bisa Anda install ataupun tidak, diantaranya:
7. 7
c. Webserver
Tool ini sangat dibutuhkan untuk menjalankan aplikasi-aplikasi yang dibuat menggunakan
bahasa pemrograman PHP. Anda bisa menggunakan XAMP, WAMP, AppServ dan lain-lain.
d. Composer
Karena penulis menjalankan kode nantinya menggunakan PHP Server Built in, maka
terlebih dahulu install composer. Composer adalah sebuah dependency ‘manager’ untuk
PHP. Anda dapat menambah library yang dibutuhkan untuk website Anda secara otomatis
tanpa perlu mendownload satu persatu. Mirip dengan apt-get install pada sistem operasi
linux. Adapun proses instalasi composer adalah sebagai berikut :
Unduh composer di https://getcomposer.org/Composer-Setup.exe,
Klik dua kali file tersebut sehingga muncul dialog setup install composer kemudian klik
Next
Memilih komponen yang akan diinstall. Pilih “Install Shell Menus” kemudian klik next
8. 8
Check versi php. Pada tombol “browse”, kemudian masukan path php yang sudah
diinstall di komputer. Disini dicontohkan path php nya yaitu di
“C:/xampp/php/php.exe” kemudian klik next. (Penulis Menggunakan XAMPP)
Jika versi php sudah memenuhi standar instalasi Laravel, maka akan muncul tampilan
sebagai berikut. Kemudian klik Install
9. 9
Jika sudah berhasil instal composer, untuk mengecek apakan composer sudah
berjalan dengan baik, buka Command Promt kemudian tuliskan “composer –v”. Jika
berhasil composer akan tampil sebagai berikut .
Untuk dapat menggunakan PHP Built in Server, terlebih dahulu buka command prompt dan
masuk ke direktori masuk ke C:/xampp/htdocs/<nama_projek> misalkan nama projeknya
vuejs-learn. Setelah itu ketik sintak php –S localhost:5555 jika berhasil maka tampilan seperti
dibawah ini (penulis menginstall xampp nya di partisi D).
Dan jika dijalankan localhost:5555 maka akan muncul error seperti dibawah ini. Jika error ini
sudah muncul, berarti built in server nya sudah berhasil berjalan.
10. 10
4. Hello World
Seperti bahasa pemrograman lainnya, kita akan awali dengan bagaimana cara menampilkan
tulisan “Hello World” menggunakan framework Vue.js. Buat file .html atau .php, kemudian
buat template HTML dan panggil file Vue.js. berikut adalah contoh manampilkan Hello World.
Div dengan id “vueElement”
<div id="vueElement">
{{ says }}
</div>
buat file atau taruh script javascript ini di bawah script pemanggilan file Vue.js
object “Obj”
<script>
obj = new Vue({
el:'#vueElement',
data : {
says : 'Hello World from Vue.js !'
}
});
</script>
Kemudian jika file index.html ini di jalankan di browser maka akan muncul tulisan sebagai
berikut :
Penjelasan
Pertama-tama kita tentukan dulu elemen mana yang akan kita gunakan dalam Vue.js. dalam
hal ini kita menggunakan elemen div dengan ID “divElement”. Nanti ID “divElement” ini juga kita
deklarasikan dalam object Vue.js. sesudah kita deklarasikan element, selanjutnya kita masukan data
binding sederhana,dalam contoh diatas kita menggunakan data dengan nama “says”, data ini kita
dekalarasikan di view menggunakan tanda “{{ }}”, tapi untuk catatan, jika anda menggunakan
framework PHP Laravel, maka ditambahkan tanda “@” di awalnya jadi “ @{{ }} “, karena di laravel
tanda tersebut juga dipakai di blade sistem nya. Sesudah kita isi data “says”, maka apa yang kita set di
object Vue.js maka akan tampil di komponen view nya.
11. 11
<div id="vueElement">
{{ says }}
</div>
obj = new Vue({
el:'#vueElement',
data : {
says : 'Hello World from Vue.js !'
}
});
5. Membuat Objek Vue.js
Ketika kita membuat instant menggunakan konstruktor Vue(), sangat perlu untuk
menspesifikasikan elemen mana yang akan kita gunakan nantinya. Dalam kode diatas,
menggunakan el untuk menspesifikasin elemen yang akan dimanipulasi menggunakan Vue.js
menggunakan CSS Selector.
Deklarasi membuat objek Vue.js
vueObj = new Vue({
});
Sebuah instant atau object dari Vue.js menggunakan pola (pattern) MV-VM yaitu Model View
ViewModel, dimana jika data di model berubah maka data di view juga berubah dan
sebaliknya jika data di model berubah maka data di view juga akan berubah.
Itulah salah satu fitur penting jika kita ingin menggunakan framework javascript yaitu Data
Binding. Dengan Vue.js, mekanisme data binding akan menjadi sangat mudah digunakan.
Vue konstruktor dapat di turunkan untuk membuat custom component dengan kode :
Vue extended sintak
var customComponent = Vue.extend({
...
})
var myCustomComponent = new customComponent()
meskipun kamu membuat proses pewarisan, dalam banyak kasus kamu harus mendaftarkan
sebuah konstruktor komponent sebagai sebuah elemen dan template.
12. 12
Diagram Lifecycle
Di bawah ini adalah diagram dari siklus penciptaan objek Vue.js, kamu tidak perlu untuk
memahami semuanya sekarang, tapi untuk kedepannya, kamu dianjurkan untuk memahami
diagram dibawah ini.
13. 13
6. Two Way Data Binding
Data binding merupakan salah satu fitur penting dalam framework javascript khususnya
Vue.js. Dengan konsep MVVM, Vue.js memberikan kemudahan dalam memanipulasi data di
model dan di view. Untuk lebih memahami konsep ini, kita akan coba langsung membuat kode
program dibawah ini.
Buatlah file databinding.html dan panggil file Vue.js.
View databinding.html
<div id="vueElement">
<input type="text" v-model="says"> {{ says }}
<pre>{{ $data | json }}</pre>
</div>
Vue.js objek
obj = new Vue({
el:'#vueElement',
data : {
says : 'Hello World !'
}
});
Jalankan databinding.html di browser dan akan muncul tulisan Hello World.
Di textbox tersebut, kita coba ganti hello world menjadi “hello Vue.js”, maka tulisan di sebelah
kanan dan dibawahnya pun akan otomatis terganti sesuai dengan apa yang kita inputan di
textbox tersebut.
Dari contoh diatas, kita dapat melihat apa yang kita inputan tadi, otomatis merubah teks
dibagian kanan dan dibagian bawahnya, seperti ini lah contoh penerapan two way data
binding. Model bisa merubah data ke View, dan sebaliknya View bisa merubah data Ke Model.
14. 14
Penjelasan
Berikut kita akan coba bedah kode databinding.html diatas, dimulai dengan pendeklarasikan
elemen div dengan ID “divElement” dan begitu pun di pendeklarasian objek Vue.js, el nya kita
isi dengan #divElement.
<div id="vueElement">
...
</div>
obj = new Vue({
el:'#vueElement',
...
});
Setelah itu kita, deklarasikan data binding dengan nama “says” dalam objek Vue.js dan isi
dengan nilai “Hello World !”.
obj = new Vue({
el:'#vueElement',
data : {
says : 'Hello World !'
}
});
Di view databinding.html, buat input text dan kita refer ke data model “says” menggunakan
directive v-model yang tadi di buat di Model. Disamping itu kita coba deklarasikan output
view nya.
<input type="text" v-model="says"> {{ says }}
Ada banyak directive yang akan kita pelajari kedepan, jika ingin melihat directive yang lengkap,
Anda bisa mengunjungi situs nya langsung dan masuk ke bagian API nya.
Untuk melihat representasi data “says” yang ada dimodel, kita coba buat sebuah output data
menggunakan format JSON.
<pre>{{ $data | json }}</pre>
Data “says” di View
Data “says” di Model
15. 15
7. Computed Properties
Karena di Vue.js ini tidak mempunyai controller seperti pada angular, maka alternatif lain
yaitu fitur computed propertie. Fitur ini akan sangat bermanfaat bila kita membutuhkan
operasi logik atau operasi aritmatika ke dalam aplikasi.
Untuk lebih jelasnya, buat file compprop.html dan panggil file Vue.js. dalam file ini kita
mengambil contoh kasus, dimana nilai yang kita inputkan memilki rentang antara 1 – 10
maka bernilai C, 11-20 bernilai B, 21-30 bernilai A.
compprop.html
<div id="vueElement">
<input type="text" v-model="poin">
<h2>Nilai Anda Adalah : {{ nilai }}</h2>
</div>
Objek Vue.js
obj = new Vue({
el:'#vueElement',
data : {
poin:'',
},
computed : {
nilai:function() {
if(this.poin >=1 && this.poin <= 10){
return 'C';
}else if(this.poin >=11 && this.poin <= 20){
return 'B';
}else if(this.poin >=21 && this.poin <= 30){
return 'A';
}else{
return '';
}
}
}
});
Jalankan kode compprop.html dibrowser, kemudian output nya akan akan sebagai berikut :
16. 16
Kemudian kita coba inputan angka 5 pada input teks tersebut, maka Nilainya adalah C
Kita coba input angka 15, maka akan keluar nilai B
Dan apabila kita coba inputakan nilai 25, maka akan keluar nilai A
Penjelasan
Pertama kita buat elemen div dengan ID divElement dan panggil di objek Vue.js
<div id="vueElement">
...
</div>
obj = new Vue({
el:'#vueElement',
...
});
17. 17
Sesudah itu, karena kita akan menginputkan angka yang maka kita sediakan input teks dengan
directive v-model yang mengacu ke data binding “point” dan inisialisasi nilai point ini dengan
nilai kosong ‘’.
<div id="vueElement">
<input type="text" v-model="poin">
...
</div>
obj = new Vue({
el:'#vueElement',
data : {
poin:'',
},
...
});
Setelah itu, kita coba buatkan label untuk menghasilkan output nilai dari angka yang telah kita
inputan. Untuk menampilkan output ini, kita akan memanggil fungsi “nilai”. Fungsi nilai inilah
yang akan ditaruh di properti komputasi (computed), karena di dalam fungsi ini terdapat
operasi logika.
<div id="vueElement">
<input type="text" v-model="poin">
<h2>Nilai Anda Adalah : {{ nilai }}</h2>
</div>
obj = new Vue({
el:'#vueElement',
data : {
poin:'',
},
computed : {
nilai:function() {
...
}
}
});
Berdasarkan studi kasus, jika angka yang diinputkan antara 1-10 maka akan muncul nilai C.
Jika angka antara 11-20 akan muncul nilai C dan jika angka antara 21-30 maka akan muncul A.
Operasi ini kita simpan di method nilai pada computed properties.
18. 18
obj = new Vue({
el:'#vueElement',
data : {
poin:'',
},
computed : {
nilai:function() {
if(this.poin >=1 && this.poin <= 10){
return 'C';
}else if(this.poin >=11 && this.poin <= 20){
return 'B';
}else if(this.poin >=21 && this.poin <= 30){
return 'A';
}else{
return '';
}
}
}
});
8. Operasi Logika
Ada situasi dimana kita ingin ada operasi logika sederhana (if .. else) dalam komponen View
seperti di bawah ini .
{{ #if display }}
<p>Tampilkan kan</p>
{{ /if }}
Dalam Vue.js, sudah terdapat fitur untuk menangani kondisi seperti diatas. Terdapat directive
untuk mengatur operasi logika (if .. else) yang bisa disimpan dalam View. Contoh
sederhananya seperti dibawah ini.
<p v-if="display">Tampilkan</p>
Kita akan coba membuat file conditional1.html untuk melihat kondisi menggunakan directive
v-if dan jangan lupa untuk memanggil file Vue.js nya.
conditional1.html
<div id="vueElement">
<p v-if="display">Ini adalah paragraf</p>
</div>
19. 19
Object Vue.js
obj = new Vue({
el:'#vueElement',
data : {
display:true,
},
});
Dan jika ditampilkan di browser, maka akan uncul tulisan “Ini adalah paragraf”.
Penjelasan
Dalam directive v-if diatas, <p v-if="display"> kita data binding Display yang kita set di
object Vue.js dengan tipe boolean yaitu “true”. Jika kita set display dengan nilai “false” maka
tulisan “Ini adalah paragraf” tidak akan muncul.
Selain directive v-if, Vue.js juga menyediakan untuk menangani kondisi yang lainnya yaitu
menggunakan directive v-else. Untuk mempermudah pemahaman, kita coba membuat file
conditional2.html dan jangan lupa panggil file Vue.js.
conditional2.html
<div id="vueElement">
<p v-if="display == 1">Bilangan lebih dari satu</p>
<p v-else>Bilangan selain satu</p>
</div>
Objek Vue.js
obj = new Vue({
el:'#vueElement',
data : {
display:1,
},
});
20. 20
Penjelasan
Dalam contoh diatas, data binding kita set degan nilai 1, dan dalam file view
conditional2.html kita atur menggunakan directive v-if .. v-else. Dimana jika data display nya
berisi 1 maka akan tereksekusi baris <p v-if="display == 1">Bilangan lebih dari satu</p> dan jika
data angka berisi selain angka 1, maka baris ini <p v-else>Bilangan selain satu</p>.
9. List Rendering
Fitur ini menggunakan directive v-for, kalau di PHP ada fitur Foreach(),directive v-for ini mirip
dengan fitur foreach tersebut. Biasanya untuk mengeluarkan data yang berbentuk array
dalam bentuk perulangan.
Untuk lebih jelasnya, kita buat file listrender1.html dan jangan lupa panggil file Vue.js .
listrender1.html
<div id="vueElement">
<ul>
<li v-for="agenda in agendas">{{ agenda }}</li>
</ul>
</div>
object vue.js
obj = new Vue({
el:'#vueElement',
data : {
agendas:[
'Bangun Pagi',
'Senam Pagi',
'Mandi Pagi'
21. 21
]
},
});
Dan jika dijalankan di browser, maka akan terlihat list daftar dari nilai data binding agendas.
Penjelasan
Karena nilai dari data binding nya berulang, maka kita menggunakan elemen <ul><li> untuk
mengeluarkan nilai-nilai tersebut.
data : {
agendas:[
'Bangun Pagi',
'Senam Pagi',
'Mandi Pagi'
]
},
Dan dalam elemen yang berulang ini <li> kita simpan sisipkan directive v-for yang mengacu ke
data binding agendas.
<ul>
<li v-for="agenda in agendas">{{ agenda }}</li>
</ul>
Directive v-for selain untuk mengeluarkan data binding yang bertipe array, juga dapat
mengeluarkan data informasi (properties) dari suatu object menggunakan $key dan value dari
object itu sendiri. Setiap property dia mempunyai nilai $key yang berbeda-beda. Untuk lebih
jelasnya buat file listrender2.html dan panggil file Vue.js.
listrender2.html
<ul id="vueElement">
<li v-for="value in mahasiswa">
{{ $key }} : {{value}}
</li>
</ul>
Object Vue.js
obj = new Vue({
22. 22
el:'#vueElement',
data : {
mahasiswa:{
NIM : '10508658',
Nama : 'Ismasari',
Age:23
}
},
});
Dan jika kita jalankan dibrowser, akan muncul keterangan dari object Mahasiswa.
10. Event Handling
Event Handling adalah konsep penanganan suatu aksi yang terjadi. Dalam beberapa kondisi,
sering kita membuat aplikasi yang mengharuskan pengguna untuk menekan tombol maka
akan terjadi suatu aksi misalnya menampilkan sebuah popup pesan.
Event merupakan respon dari program ketika user melakukan tindakan terhadap element
tertentu dalam aplikasi.
Untuk lebih jelasnya, kita akan coba menjelaskan event handling dalam sebuah contoh.
Contoh yang akan kita ambil yaitu kita coba membuat sebuah button, yang setiap kita tekan
button itu, ada label dengan nilai yang terus naik / increment.
Buat file eventHandling.html dan panggil file vue.min.js.
eventHandling.html
<div id="eventHandlingID">
<button type="submit" v-on:click="updateCount">
Incremental Counter : {{ count }}
</button>
</div>
Objek Vue.js
var obj = new Vue({
el:'#eventHandlingID',
24. 24
Buat element div dengan ID eventHandlingID dan object Vue.js denga el eventHandlingID.
eventHandling.html
<div id="eventHandlingID">
...
</div>
Objek Vue.js
var obj = new Vue({
el:'#eventHandlingID',
...
});
Setelah itu membuat data binding count dan membuat methods updateCount. Method ini
kita gunakan untuk mengupdate data binding secara increment 1. Semua methods dalam
Vue.js harus berada pada lingkup (scope) methods:{ ... }.
Objek Vue.js
var obj = new Vue({
el:'#eventHandlingID',
data : {
count:0
},
methods: {
//methods untuk update counter
updateCount:function(){
this.count += 1
}
}
});
25. 25
Di View, kita buat <button> dengan directive v-on:click yang mengacu ke methods
updateCount. Di dalam <button> ini, lalu buat label untuk menampilkan nilai counter dari
data binding count.
<div id="eventHandlingID">
<button type="submit" v-on:click="updateCount">
Incremental Counter : {{ count }}
</button>
</div>
11. Bekerja dengan Components
Components adalah salah satu fitur penting dalam framework Vue.js, bisa dibilang fitur ini
mengijinkan programmer memperluas elemen HTML dan membungkus (encapsulation)
dalam suatu kode.
a. Registration
Untuk menggunakan fitur ini, kita diharuskan untuk mendaftarkan dulu component apa yang
akan kita gunakan. Terdapat dua cara untuk mendaftarkan component yang akan kita buat.
Untuk lebih jelasnya perhatikan kedua langkah ini.
- Cara Pertama
Buat file customcomp1.html dan panggil file vue.min.js. dan ketikan kode berikut.
customcomp1.html
<div id="learnComponent">
<my-custom-component></my-custom-component>
</div>
Script js
// define
var myCustomComponent = Vue.extend({
template:'<div> Ini adalah hasil render component Vue.js dengan
cara register ke-1</div>'
});
// register
Vue.component('my-custom-component',myCustomComponent)
// object
new Vue({
el:'#learnComponent'
})
Dan jika kita jalankan dibrowser,maka akan muncul tulisan dibawah ini.
26. 26
Pertama kita membuat object dari Vue.extend({ ... }) dan menentukan template dari
component yang akan kita buat.
// define
var myCustomComponent = Vue.extend({
template:'<div> Ini adalah hasil render component Vue.js dengan
cara register ke-1</div>'
});
Setelah itu, dari object yang sudah dibuat diatas kemudian kita daftarkan menggunakan
Vue.component({ ... }) dan menentukan nama dari component yang akan kita buat.
(seolah-olah kita membuat elemen baru di HTML).
// register
Vue.component('my-custom-component',myCustomComponent)
Setelah proses registrasi selesai, selanjutnya membuat root instance Vue.js .
new Vue({
el:'#learnComponent'
})
- Cara Kedua
Dalam cara kedua ini, kita akan coba menyederanakan proses registrasi yang pertama.
Buat file customcomp2.html dan panggil file vue.min.js. dan ketikan kode berikut.
customcomp1.html
<div id="learnComponent">
<my-custom-component></my-custom-component>
</div>
Script js
// define
Vue.component('my-custom-component', {
template: '<div> Ini adalah hasil render component Vue.js
dengan cara register ke-2</div>'
});
// object
new Vue({
el:'#learnComponent'
});
Dan jika dijalankan dibrowser, maka output akan sebagai berikut.
27. 27
Dalam cara yang kedua ini, kita menyederhanakan proses registrasi menggunakan
Vue.component({ ... }) dan langsung mendefinisikan nama component dan template nya.
// define
Vue.component('my-custom-component', {
template: '<div> Ini adalah hasil render component Vue.js
dengan cara register ke-2</div>'});
b. Components Props
Setiap object dari components berada pada lingkung nya masing-masing, itu artinya kamu
tidak bisa secara langsung me-referensi data yang ada di-parent dalam sebuah template milik
child-nya. Data dapat dilewatkan ke child component menggunakan Props.
Untuk lebih jelas dalam mengenal apa itu props, kita buat file html customcompProp.html
dan panggil file vue.min.js . Dalam contoh ini kita menggunakan framework css bootstrap 3
(bootstrap.min.css) menggunakan CDN.
customcompProp.html
<link rel="stylesheet
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
">
<div id="learnComponentProp" class="container col-md-4
style="padding-top:10px;">
<alert type="success" bold="Success" msg="Alert ini untuk pesan sukses"></alert>
<alert type="warning" bold="Warning." msg="Alert ini untuk peringatan."></alert>
<alert type="danger" bold="Danger" msg="Pesan ini untuk peringatan keras"></alert>
<alert type="info" bold="Info." msg="Alert ini untuk menampilkan pesan info."></alert>
</div>
Vue.js object
// define
Vue.component('alert', {
props: ['type', 'bold', 'msg'],
template: '<div class="alert alert-{{ type }}" role="alert"><b>{{
bold }}</b> {{ msg }}</div>'
});
28. 28
// object
new Vue({
el:'#learnComponentProp'
});
Dan jika kita jalankan di browser, maka akan muncul tipe-tipe alert.
Pada contoh diatas, kita membuat component dengan nama alert yang nantinya akan
dikombinasikan dengan bootstrap css.
Vue.component('alert', {
...
});
<alert type="success" bold="Success" msg="Alert ini untuk pesan sukses"></alert>
<alert type="warning" bold="Warning." msg="Alert ini untuk peringatan."></alert>
<alert type="danger" bold="Danger" msg="Pesan ini untuk peringatan keras"></alert>
<alert type="info" bold="Info." msg="Alert ini untuk menampilkan pesan info."></alert>
Setelah itu, kita buat props untuk component alert. Dalam contoh, kita membuat tiga yaitu
type, bold, dan msg.
Vue.component('alert', {
props: ['type', 'bold', 'msg'],
...
});
Setelah mendefiniskan props nya, kita coba buat template untuk kita masukan tiap-tiap
propsnya.
Vue.component('alert', {
props: ['type', 'bold', 'msg'],
29. 29
template: '<div class="alert alert-{{ type }}" role="alert"><b>{{
bold }}</b> {{ msg }}</div>'
});
Untuk memasukan data props nya di template, gunakan tanda {{ ... }}. Untuk component nya
nya sudah beres sekarang buat instance vue.js nya.
// object
new Vue({
el:'#learnComponentProp'
});
Untuk pengaturan object Vue.js sudah sekarang membuat file view untuk menampilkan dalam
bentuk HTML nya. Dalam elemen HTML inilah, props yang sudah dibuat masing-masing diberi
nilai.
12. Filter
Dalam kumpulan data, kita biasanya mengurutkan data dari Abjad A sampai Z misalnya, atau
mengelompokan data mahasiswa yang mempunyai nilai diatas 3.5, atau mencari data nama
mahasiswa yang namanya diawali dengan inisial kata A.
Dalam Vue.js, filter adalah sebuah fungsi yang menerima nilai / value, dan memfilter sesuai
kebutuhan. Untuk filter ini, Vue.js sudah menyediakan fungsi-fungsi bawaannya seperti
capitalize, uppercase, lowercase, currency, pluralize, json, key, filterBy dan orderBy. Tapi
disini, penulis akan memberikan contoh filter menggunakan fungsi bawaan yaitu uppercase
yang berfungsi untuk membentuk hurup kapital.
Buat file basicFilter.html dan panggil file vue.min.js
basicFilter.html
<div id="filterUppercase">
<input type="text" v-model="message" />
<h4>{{ message | uppercase }}</h4>
</div>
Objek vue.js
var obj = new Vue({
el: '#filterUppercase',
data: {
message: 'belajar filter vue.js'
}
});
30. 30
Dan jika kita jalankan dibrowser, hasilnya akan seperti dibawah ini.
Dan jika kita menambahkan kata di textbox diatas, maka otomatis kata yang dibawahnya
juga akan bertambah dan berbentuk kapital.
Pertama kita buat div dengan ID “filterUppercase” dan buat objek Vue.js dengan el mengacu
ke div “filterUppercase”.
<div id="filterUppercase">
...
</div>
var obj = new Vue({
el: '#filterUppercase',
...
});
Kemudian kita buat data binding “message” dengan isi “belajar filter vue.js” dan data
binding ini kita tempatkan juga di textbox dalam div ID “filterUppercase”.
<div id="filterUppercase">
<input type="text" v-model="message" />
...
</div>
31. 31
var obj = new Vue({
el: '#filterUppercase',
data: {
message: 'belajar filter vue.js'
}
});
Sesudah membuat data binding, selanjutnya yaitu kita coba menampilkan data binding
tersebut dengan memberikan filter uppercase. Untuk menggunakan filter yaitu sesudah kita
mendefinisikan data binding di View juga ditambahkan simbol ‘ | ‘ dan fungsi filter yang akan
dipakai, dalam hal ini kita menggunakan fungsi uppercase.
<div id="filterUppercase">
<input type="text" v-model="message" />
<h4>{{ message | uppercase }}</h4>
</div>
13. Custom Filter
Disamping menyediakan fungsi filter bawaan, Vue.js juga mengijinkan developer untuk
membuat filter yang sesuai dengan kebutuhan masing-masing. Salah satunya dalam objek
Vue.js. Untuk lebih jelasnya mari kita buat file customFilter.html dan jangan lupa panggil file
Vue.js nya.
customFilter.html
<div id="customVilter">
<h2>{{ kata | upper }}</h2>
<h2>{{ kata | lower }}</h2>
</div>
Objek Vue.js
var obj = new Vue({
el: '#customVilter',
data : {
kata: 'Ini adalah contoh custom filter'
},
filters : {
//filter untuk upper
upper:function(value){
return value.toUpperCase();
},
//filter untuk fungsi lower
lower:function(value){
return value.toLowerCase();
}
32. 32
}
});
Dan jika dijalankan di browser maka akan muncul dua tulisan. Yang satu menggunakan
uppercase dan yang satu menggunakan lowercase.
Penjelasan
Pertama-tama kita membuat div dengan ID customFilter dalam ID ini kita akan
memanggil data binding “kata” yang menggunakan dua filter yaitu upper dan lower.
<div id="customVilter">
<h2>{{ kata | upper }}</h2>
<h2>{{ kata | lower }}</h2>
</div>
Selanjutnya, membuat objek Vue.js dengan el customFilter. Dan data binding “kata” dengan
isi “Ini adalah contoh custom filter”.
var obj = new Vue({
el: '#customVilter',
data : {
kata: 'Ini adalah contoh custom filter'
},
});
Sekarang dalam objek Vue.js diatas, kita deklarasikan filte yang akan kita buat di dalam scope
filters: { ... }. Untuk masing-masing filter upper dan lower kita bentuk menjadi sebuah fungsi
yang memanipulasi data menjadi dalam bentuk uppercase dan lowercase.
filters : {
//filter untuk upper
upper:function(value){
return value.toUpperCase();
},
//filter untuk fungsi lower
lower:function(value){
33. 33
return value.toLowerCase();
}
}
14. Demo Simple CRUD dengan Vue.js
Dalam bab terakhir ini, kita akan coba membuat operasi Cread, Retrieve, Update dan Delete
atau yang lebih dikenal dengan istilah CRUD. Dalam kasus ini, data disimpan dalam bentuk
array. Pertama kita buat file basicCrud.html dengan id element body nya yaitu “belajar”,
dalam file ini kita menggunakan CDN untuk memanggil file asset CSS (bootstrap.min.css) dan
JS (jquery, bootstrap.min.js, vue.min.js)
basicCrud.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Belajar Basic CRUD dengan Vue.js</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
">
</head>
<body id="belajar">
<tempat kita menulis container dan modal>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"><
/script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.min.js"></script
>
<script src="crud.js"></script>
</body>
</html>
Dalam elemen body file html diatas, buat container dengan isi button dan tabel. Tabel untuk
memunculkan modal dialog untuk tambah barang dan edit barang. Tabel untuk melihat data yang
sudah masuk.
basicCrud.html - container
<div class="container">
<div class="row">
<div class="col-lg-12">
<p></p>
<button @click="tambahBarang" type="button" class="btn btn-primary"
data-toggle="modal" data-target="#modal">
Tambah Barang
</button>
36. 36
</div>
Setelah selesai membuat file basicCrud.html selanjutnya membuat object Vue.js. kita simpan dalam
file crud.js sehingga terpisah penulisannya dengan file html nya.
crud.js
'use strict';
new Vue({
el: '#belajar',
data: function() {
return {
dataBarang: [],
inputDataBarang: {},
enable: false
}
},
methods: {
generateUUID: function() {
var d = new Date().getTime();
if (window.performance && typeof window.performance.now ===
"function") {
d += performance.now();
}
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,
function(c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
return uuid;
},
tambahBarang: function() {
this.enable = true;
this.inputDataBarang = {};
},
simpanBarang: function(barang) {
this.dataBarang.push({
'idBarang': this.generateUUID(),
'namaBarang': barang.namaBarang,
'jenisBarang': barang.jenisBarang,
'tanggalKadaluarsa': barang.tanggalKadaluarsa
});
},
editBarang: function(barang) {
this.enable = false;
this.index = this.dataBarang.indexOf(barang);
this.inputDataBarang.idBarang = barang.idBarang;
this.inputDataBarang.namaBarang = barang.namaBarang;
this.inputDataBarang.jenisBarang = barang.jenisBarang;
this.inputDataBarang.tanggalKadaluarsa = barang.tanggalKadaluarsa;
},
updateBarang: function(barang) {
this.dataBarang[this.index].idBarang = barang.idBarang;
this.dataBarang[this.index].namaBarang = barang.namaBarang;
this.dataBarang[this.index].jenisBarang = barang.jenisBarang;
this.dataBarang[this.index].tanggalKadaluarsa =
barang.tanggalKadaluarsa;
this.inputDataBarang = {};
},
37. 37
hapusBarang: function(barang) {
var result = confirm('Anda ingin menghapus data barang ?');
if (result) {
this.index = this.dataBarang.indexOf(barang);
this.dataBarang.splice(this.index, 1);
}
}
}
});
Jalankan file basicCrud.html di browser, maka tampilan pertama akan sebagai berikut.
Data diatas masih kosong sehingga data dalam tabel diatas tidak menampilkan data apa-apa. Untuk
dapat menambah data, klik tombol ‘Tombol Barang’ dan akan muncul modal dialog yng berisi form
untuk mengisi data barang. Sesudah kita memasukan data kemudian klik tombol ‘Simpan’.
38. 38
Pada proses penyimpanan data, di object Vue.js ini kita sudah sediakan generasi UUID atau kode
unik yang menyediakan kode istimewa disetiap datanya.
Jika ada data yang akan diedit, klik tombol warna hijau dsan akan muncul kotak dialog untuk mengedit
data yang sudah masuk dan klik tombol ‘Update’ untuk menyimpan perubahan.
39. 39
Dalam data yang masuk, kita coba menghapus data dengan cara klik tombol warna merah dan akan
muncul konfirmasi untuk menghapus data.