SlideShare ist ein Scribd-Unternehmen logo
1 von 98
Downloaden Sie, um offline zu lesen
VUETIFUL
DATA-DRIVEN USER INTERFACES
EVAN SCHULTZ
VUETIFUL
DATA-DRIVEN USER INTERFACES
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
▸ Basic use
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
▸ Basic use
▸ Props and Events
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
▸ Basic use
▸ Props and Events
▸ Dynamic Forms
WHAT DOES IT
MEAN
DATA DRIVEN UI
“
WE DON’T KNOW THE COMPONENTS UNKNOWN UNTIL RUNTIME
WHAT DO WE MEAN?
UI BASED ON RUNTIME DATA
▸ API Response
WHAT DO WE MEAN?
UI BASED ON RUNTIME DATA
▸ API Response
▸ Application State
WHAT DO WE MEAN?
UI BASED ON RUNTIME DATA
▸ API Response
▸ Application State
▸ Data Driven Configuration
“
WHEN WOULD YOU NEED THIS?
“
“DYNAMIC COMPONENTS ARE NOT A COMMON REQUIREMENT”
BLOG POST I (SORTA) DISAGREE WITHBLOG POST I (SORTA) DISAGREE WITH
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
‣ Data Driven Customization
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
‣ Data Driven Customization
▸ Form Generators
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
‣ Data Driven Customization
▸ Form Generators
▸ … and lots more
WHAT DO WE MEAN?
“
DATA / STATE UITRANSFORM
“
BASICALLY
WE WANT TO GO FROM THIS
TO THIS
COMPONENT
THE BASICS
WHY AM I EXCITED?
“
SO EASY IT’S ALMOST BORING*
“
SO EASY IT’S ALMOST BORING*
* If I haven’t felt the pain points with other frameworks - I’d just expect this is how they work.
“
SPEND TIME BUILDING SOLUTIONS WITH THEM.
“
SPEND TIME BUILDING SOLUTIONS WITH THEM.
NOT TRYING TO FIGURE OUT HOW TO LOAD COMPONENTS DYNAMICALLY.
THE BASICS - COMPONENT
▸ Component is a place holder
<component :is=“componentType”/>
<section class="markup-demo-wrap">
<component :is="activeView" v-model="contact">
</component>
</section>
<component :is=“componentType"/>
THE BASICS - COMPONENT
▸ Component is a place holder
<component :is=“componentType”/>
<section class="markup-demo-wrap">
<component :is="activeView" v-model="contact">
</component>
</section>
<component :is=“componentType"/>
THE BASICS - COMPONENT
▸ Component is a place holder
<component :is=“componentType”/>
<section class="markup-demo-wrap">
<component :is="activeView" v-model="contact">
</component>
</section>
<component :is=“componentType"/>
THE BASICS - COMPONENT
▸ Component is a place holder
▸ Does not introduce any host elements
<component :is=“componentType”/><component :is=“componentType"/>
THE BASICS - COMPONENT
<component :is=“componentType"/>
THE BASICS - COMPONENT
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
▸ Data Property
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
▸ Data Property
▸ Computed Property
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
▸ Data Property
▸ Computed Property
▸ Can be derived from Vuex store
<component :is="componentType"/>
THE BASICS - COMPONENT
<component :is="propExample" />
<template>
<is-prop :activeView="activeView">

</is-prop>
</template>
<script>
export default {
name: "IsPropContainer",
computed: {
activeView(){
return this.isContact ?
"ContactDetails" : "AddressDetails";
}
</script>
<template>
<component 

:is="activeView"
v-model="contact"/>
</template>
<script>
export default {
name: "IsProp",
props: ["activeView"],
components: {
/* ... */
},
</script>
PARENT COMPONENT CHILD LOADING DYNAMIC BASED ON PROP
THE BASICS - COMPONENT
<component :is="propExample" />
THE BASICS - COMPONENT
:IS A COMPUTED PROPERTY
<component :is="activeView" v-model="contact" />
<script>
export default {
/* .... */
computed: {
activeView: function() {
return this.isContact ? "ContactDetails" : "AddressDetails";
}
},
data() {
return { isContact: true, }
}
</script>
THE BASICS - COMPONENT
<component :is="computedExample"/>
PROPS AND EVENTS
COMPONENTS
<address-view
:street1="contact.street1"
:street2="contact.street1"
:country="contact.street1"
:province="contact.street1"
:postalCode=“contact.street1"/>
<contact-view
:firstName="contact.firstName"
:lastName="contact.lastName"
:userName="contact.userName"
:email=“contact.email"/>
PROPS AND EVENTS
PROPS
▸ Props can be bound just like any other component
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"


:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
PROPS AND EVENTS
PROPS
▸ Props can be bound just like any other component
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"


:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
PROPS AND EVENTS
PROPS
▸ Props can be bound just like any other component
▸ Unknown props will not cause errors
CONTACT PROPS
ADDRESS PROPS
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
▸ Object Properties that match Props get bound as Props
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
▸ Object Properties that match Props get bound as Props
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"
:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
V-BIND BEFORE
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
▸ Object Properties that match Props get bound as Props
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"
:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
V-BIND BEFORE
<component :is="activeView"
v-bind="contact">
</component>
V-BIND AFTER
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
▸ Become attributes on the root of the component
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
▸ Become attributes on the root of the component
▸ inheritAttrs: false
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
▸ Become attributes on the root of the component
▸ inheritAttrs: false
▸ Can control how they are bound
PROPS AND EVENTS
INHERITATTRS: TRUE (DEFAULT)
▸ Become attributes on the root element of the component
contact: {
street1: "19 York Street",
street2: "6th Floor",
country: "Canada",
postalCode: "N1N 2N2",
province: "Ontario",
firstName: "Evan",
lastName: "Schultz",
password: "iwantmymoney",
email: "evan@",
userName: "e-schultz",
}
CONTACT UNKNOWN PROPS
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
<label>{{label}}</label>
<input type="text"
:name="name"
:placeholder="placeholder"
v-bind="$attrs">
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
▸ Can pass down to other components
<label>{{label}}</label>
<input type="text"
:name="name"
:placeholder="placeholder"
v-bind="$attrs">
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
▸ Can pass down to other components
▸ Useful for working with other libraries
<b-dropdown :value="value"
@input="$emit('input',$event)"
v-bind="$attrs">
<!-- ... -->
<b-dropdown-item v-for="(option) in options" :key="option"
:value="option">
{{option}}
</b-dropdown-item>
</b-dropdown>
PROPS AND EVENTS
EVENTS
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
▸ @focus
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
▸ @focus
▸ Can bind custom events
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
▸ @focus
▸ Can bind custom events
▸ @upperCase=“switchCase(‘upperCase')"
FORMS
PUTTING IT TOGETHER
FORMS
THE SETUP
FORMS
THE SETUP
▸ JSON Schema
FORMS
THE SETUP
▸ JSON Schema
▸ v-for over the collection
FORMS
THE SETUP
▸ JSON Schema
▸ v-for over the collection
▸ Playing nice with v-model
schema: [{
fieldType: "SelectList",
name: "title",
multi: false,
label: "Title",
options: ["Ms", "Mr", "Mx", "Dr", "Madam", "Lord"]
},
{
fieldType: "TextInput",
placeholder: "First Name",
label: "First Name",
name: "firstName"
},
{
fieldType: "NumberInput",
placeholder: "Age",
name: "age",
label: "Age",
minValue: 0
}
FORMS
EXAMPLE COMPONENT - TEXT INPUT
<template>
<div>
<label>{{label}}</label>
<input type="text"
:name=“name"
:value=“value"
:placeholder="placeholder">
</div>
</template>

<script>
export default {
name: "TextInput",
props: ["placeholder", "label", “name”, "value"]
};
</script>
FORMS
V-FOR
<component v-for="(field, index) in schema" :key="index"
:is="field.fieldType" v-bind="field">
</component>
FORMS
<component v-for="(field, index) in schema" :key="index"
:is="field.fieldType" v-bind="field">
</component>
V-IF
WHAT ABOUT
FORMS
WHAT ABOUT V-IF
▸ Still useful for simple cases
FORMS
WHAT ABOUT V-IF
▸ Still useful for simple cases
▸ Can quickly bloat templates
FORMS
WHAT ABOUT V-IF
▸ Still useful for simple cases
▸ Can quickly bloat templates
▸ Repetitive code can become error prone
FORMS
WHAT ABOUT V-IF
<div v-for="(field, index) in schema" :key="index">
<text-input v-if="field.fieldType === 'TextInput'"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props"></text-input>
<password-input v-else-if="field.fieldType === 'PasswordInput'"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props"></password-input>
<select-list v-else-if="field.fieldType === 'SelectList'"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props"></select-list>
<!--- and repeat for each dynamically loadable component -->
</div>
FORMS
WHAT ABOUT V-IF
<component v-for="(field, index) in schema"
:key="index"
:is="field.fieldType"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props">
</component>
DATA BINDING
FORMS
FORMS
DATA BINDING - EXPLORING V-MODEL
<input v-model="value">
<input :value="value" @input=“value = $event.target.value">
IS SUGAR ON TOP OF
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
▸ Let the parent provide a value to the child component
▸ Let the parent know that the value has changed
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
<label>{{label}}</label>
<input type="text"
:name="name"
:value="value"
@input="$emit('input',$event.target.value)"
:placeholder="placeholder">
▸ Bind to “:value”
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
<label>{{label}}</label>
<input type="text"
:name="name"
:value="value"
@input="$emit('input',$event.target.value)"
:placeholder="placeholder">
▸ Bind to “:value”
▸ Emit an “@input” event to notify the parent
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
<label>{{label}}</label>
<input type="text"
:name="name"
:value="value"
@input="$emit('input',$event.target.value)"
:placeholder="placeholder">
FORMS
DATA BINDING - COMPONENT WITH V-MODEL
<component v-for="(field, index) in schema"
:key="index"
:is="field.fieldType"
v-model="formData[field.name]"
v-bind="field">
</component>
export default {
  data() {
return {
formData: {
firstName: 'Evan'
},
schema: [ { /* .... */ }]
}
DEMO TIME
LETS SEE IT
THATS ALL
THANKS!
▸ Repo: bit.ly/js-camp-2018-demo
▸ Demo:bit.ly/js-camp-bcn-demo
▸ Blog: bit.ly/data-driven-vue
@e_p82
e-schultz
THANKS! Evan Schultz
@e_p82
e-schultz
evan@rangle.io

Weitere ähnliche Inhalte

Was ist angesagt?

Khóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công ty
Khóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công tyKhóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công ty
Khóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công tyOnTimeVitThu
 
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
 mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t... mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...hieu anh
 
Catalogue Ống Thoát Rác
Catalogue Ống Thoát RácCatalogue Ống Thoát Rác
Catalogue Ống Thoát RácPham Ngoc Hoang
 
Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )
Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )
Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )Thuan Kim
 
[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bón
[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bón[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bón
[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bónInnovation Hub
 
Quy trình đánh giá hiệu quả marketing
Quy trình đánh giá hiệu quả marketingQuy trình đánh giá hiệu quả marketing
Quy trình đánh giá hiệu quả marketingHải Hoàng
 
BÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdf
BÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdfBÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdf
BÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdfNuioKila
 
Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...
Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...
Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...Viết thuê trọn gói ZALO 0934573149
 
Chiến lược giá của vinamilk
Chiến lược giá của vinamilkChiến lược giá của vinamilk
Chiến lược giá của vinamilkndthien23
 
Giáo trình quản trị chiến lược
Giáo trình quản trị chiến lượcGiáo trình quản trị chiến lược
Giáo trình quản trị chiến lượcShare Tai Lieu
 
Th true mil kpptx
Th true mil kpptxTh true mil kpptx
Th true mil kpptxMibabi
 
tài liệu kỹ thuật trồng nấm bào ngư xám
tài liệu kỹ thuật trồng nấm bào ngư xámtài liệu kỹ thuật trồng nấm bào ngư xám
tài liệu kỹ thuật trồng nấm bào ngư xámTrang Trại Nấm CNV
 
Chuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứng
Chuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứngChuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứng
Chuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứngQuân Thế
 

Was ist angesagt? (20)

CHIẾN LƯỢC FTG
CHIẾN LƯỢC FTGCHIẾN LƯỢC FTG
CHIẾN LƯỢC FTG
 
Khóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công ty
Khóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công tyKhóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công ty
Khóa luận tốt nghiệp: Phát triển thị trường kinh doanh bất động sản của Công ty
 
Khóa luận: Nâng cao chất lượng dịch vụ ăn uống tại khách sạn, HOT
Khóa luận: Nâng cao chất lượng dịch vụ ăn uống tại khách sạn, HOTKhóa luận: Nâng cao chất lượng dịch vụ ăn uống tại khách sạn, HOT
Khóa luận: Nâng cao chất lượng dịch vụ ăn uống tại khách sạn, HOT
 
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
 mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t... mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
 
Catalogue Ống Thoát Rác
Catalogue Ống Thoát RácCatalogue Ống Thoát Rác
Catalogue Ống Thoát Rác
 
Luận văn: Chiến lược phát triển của Công ty Bất động sản, HAY
Luận văn: Chiến lược phát triển của Công ty Bất động sản, HAYLuận văn: Chiến lược phát triển của Công ty Bất động sản, HAY
Luận văn: Chiến lược phát triển của Công ty Bất động sản, HAY
 
Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )
Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )
Kế hoạch kinh doanh thực phẩm chức năng ( tpcn )
 
[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bón
[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bón[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bón
[Sáng kiến cộng đồng] Đề án xử lý phế thải cây thanh long làm phân bón
 
Quy trình đánh giá hiệu quả marketing
Quy trình đánh giá hiệu quả marketingQuy trình đánh giá hiệu quả marketing
Quy trình đánh giá hiệu quả marketing
 
BÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdf
BÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdfBÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdf
BÀI GIẢNG KỸ NĂNG KHÁM PHÁ BẢN THÂN VÀ LẬP KẾ HOẠCH NGHỀ NGHIỆP.pdf
 
Khoá Luận Tốt Nghiệp Xuất Khẩu Nông Sản Của Việt Nam Sang Thị Trường Trung Qu...
Khoá Luận Tốt Nghiệp Xuất Khẩu Nông Sản Của Việt Nam Sang Thị Trường Trung Qu...Khoá Luận Tốt Nghiệp Xuất Khẩu Nông Sản Của Việt Nam Sang Thị Trường Trung Qu...
Khoá Luận Tốt Nghiệp Xuất Khẩu Nông Sản Của Việt Nam Sang Thị Trường Trung Qu...
 
Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...
Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...
Luận án: Phát triển mô hình chuỗi cung ứng theo tiếp cận nâng cao giá trị gia...
 
Chiến lược giá của vinamilk
Chiến lược giá của vinamilkChiến lược giá của vinamilk
Chiến lược giá của vinamilk
 
Giáo trình quản trị chiến lược
Giáo trình quản trị chiến lượcGiáo trình quản trị chiến lược
Giáo trình quản trị chiến lược
 
Th true mil kpptx
Th true mil kpptxTh true mil kpptx
Th true mil kpptx
 
Đề tài: Phát triển văn hóa doanh nghiệp tại Công ty nhựa, HAY, 9đ
Đề tài: Phát triển văn hóa doanh nghiệp tại Công ty nhựa, HAY, 9đĐề tài: Phát triển văn hóa doanh nghiệp tại Công ty nhựa, HAY, 9đ
Đề tài: Phát triển văn hóa doanh nghiệp tại Công ty nhựa, HAY, 9đ
 
tài liệu kỹ thuật trồng nấm bào ngư xám
tài liệu kỹ thuật trồng nấm bào ngư xámtài liệu kỹ thuật trồng nấm bào ngư xám
tài liệu kỹ thuật trồng nấm bào ngư xám
 
Đề tài: Phân tích thực trạng của ngành xuất khẩu cao su tại Việt Nam
Đề tài: Phân tích thực trạng của ngành xuất khẩu cao su tại Việt NamĐề tài: Phân tích thực trạng của ngành xuất khẩu cao su tại Việt Nam
Đề tài: Phân tích thực trạng của ngành xuất khẩu cao su tại Việt Nam
 
Nâng cao chất lượng hàng nông sản xuất khẩu của Việt Nam, HAY
Nâng cao chất lượng hàng nông sản xuất khẩu của Việt Nam, HAYNâng cao chất lượng hàng nông sản xuất khẩu của Việt Nam, HAY
Nâng cao chất lượng hàng nông sản xuất khẩu của Việt Nam, HAY
 
Chuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứng
Chuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứngChuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứng
Chuỗi cung ứng Vinamilk và những vấn đề xuất hiện trong chuỗi cung ứng
 

Ähnlich wie Creating 'Vuetiful' Data-Driven User Interfaces

Kakunin E2E framework showcase
Kakunin E2E framework showcaseKakunin E2E framework showcase
Kakunin E2E framework showcaseThe Software House
 
Me and my importers
Me and my importersMe and my importers
Me and my importersDonny Wals
 
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...OPITZ CONSULTING Deutschland
 
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January Evan Schultz
 
A Journey with React
A Journey with ReactA Journey with React
A Journey with ReactFITC
 
Android 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture ComponentsAndroid 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture ComponentsKai Koenig
 
Architecting Single Activity Applications (With or Without Fragments)
Architecting Single Activity Applications (With or Without Fragments)Architecting Single Activity Applications (With or Without Fragments)
Architecting Single Activity Applications (With or Without Fragments)Gabor Varadi
 
The happy path to Android development
The happy path to Android developmentThe happy path to Android development
The happy path to Android developmentAndré Jonas
 
CQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshellCQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshellAndrea Giuliano
 
CQRS, React, Docker in a Nutshell
CQRS, React, Docker in a NutshellCQRS, React, Docker in a Nutshell
CQRS, React, Docker in a NutshellClaudio D'Alicandro
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basicsAnton Narusberg
 
From Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS ApplicationsFrom Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS ApplicationsSebastian Fröstl
 
Designing Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldDesigning Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldLightbend
 
Yahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsYahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsPeter-Paul Koch
 
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)Dan Robinson
 
Xamarin Test Cloud - from zero to hero in automated ui testing
Xamarin Test Cloud - from zero to hero in automated ui testingXamarin Test Cloud - from zero to hero in automated ui testing
Xamarin Test Cloud - from zero to hero in automated ui testingGeert van der Cruijsen
 
Designing Events-first Microservices
Designing Events-first MicroservicesDesigning Events-first Microservices
Designing Events-first MicroservicesJ On The Beach
 
Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018Robert Herbst
 

Ähnlich wie Creating 'Vuetiful' Data-Driven User Interfaces (20)

Kakunin E2E framework showcase
Kakunin E2E framework showcaseKakunin E2E framework showcase
Kakunin E2E framework showcase
 
Me and my importers
Me and my importersMe and my importers
Me and my importers
 
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
 
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
 
A Journey with React
A Journey with ReactA Journey with React
A Journey with React
 
Android 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture ComponentsAndroid 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture Components
 
Architecting Single Activity Applications (With or Without Fragments)
Architecting Single Activity Applications (With or Without Fragments)Architecting Single Activity Applications (With or Without Fragments)
Architecting Single Activity Applications (With or Without Fragments)
 
The happy path to Android development
The happy path to Android developmentThe happy path to Android development
The happy path to Android development
 
CQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshellCQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshell
 
Docker cqrs react
Docker cqrs reactDocker cqrs react
Docker cqrs react
 
CQRS, React, Docker in a Nutshell
CQRS, React, Docker in a NutshellCQRS, React, Docker in a Nutshell
CQRS, React, Docker in a Nutshell
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basics
 
From Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS ApplicationsFrom Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS Applications
 
Designing Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldDesigning Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native World
 
React & Flux Workshop
React & Flux WorkshopReact & Flux Workshop
React & Flux Workshop
 
Yahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsYahoo presentation: JavaScript Events
Yahoo presentation: JavaScript Events
 
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
 
Xamarin Test Cloud - from zero to hero in automated ui testing
Xamarin Test Cloud - from zero to hero in automated ui testingXamarin Test Cloud - from zero to hero in automated ui testing
Xamarin Test Cloud - from zero to hero in automated ui testing
 
Designing Events-first Microservices
Designing Events-first MicroservicesDesigning Events-first Microservices
Designing Events-first Microservices
 
Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018
 

Kürzlich hochgeladen

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Kürzlich hochgeladen (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

Creating 'Vuetiful' Data-Driven User Interfaces