Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
From Traditional Web to Modern Web
Search
Neo Kusanagi
July 19, 2018
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
From Traditional Web to Modern Web
Neo Kusanagi
July 19, 2018
More Decks by Neo Kusanagi
See All by Neo Kusanagi
Claude Cowork for Begineers
neokn
0
150
WebConf 2025 - 工程師和 AI 小隊
neokn
0
29
使用 Genkit 以及 Gemini 打造你的 Agentic ChatBot
neokn
0
80
Chat Bot 的隱藏知識庫 - RAG 外的第二種選擇
neokn
0
120
From Commit to Mulitverse
neokn
0
240
AUGM 2017 Electron talk
neokn
0
110
Other Decks in Technology
See All in Technology
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
大型犬好きによるPugの紹介
yamanoku
1
160
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
420
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
160
hackers_champloo_2026_tidb
makocchi
0
160
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
230
パッチ更新でterraform initが落ちた日
grimoh
1
140
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.9k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Designing for humans not robots
tammielis
254
26k
How to make the Groovebox
asonas
2
2.5k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
How STYLIGHT went responsive
nonsquared
100
6.3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Writing Fast Ruby
sferik
630
63k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Transcript
modern web
few years ago 1st Modern Web
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Our site already done for it
Our site already done for it
None
None
Traditional
None
None
None
None
None
None
None
Back to Space
None
None
None
None
None
None
None
None
<script src="//cdn.jsdelivr.net/npm/vue"></script>
yarn global add @vue/cli
var app = new Vue({ el: '#app', data: { message:
'Hello Vue!' } }) <div id="app"> {{ message }} </div>
None
None
Prod M Prod P Prod N Prod U Prod S
Prod J Prod A Prod E Prod V
product-list.cshtml <div class="prod-list"> @foreach (var item in Model.Products) { <div
class="@item.ProdCategoryClass"> @if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
<div class="prod-list"> @foreach (var item in Model.Products) { <div class="@item.ProdCategoryClass">
@if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
<div class="prod-list"> @foreach (var item in Model.Products) { <div class="@item.ProdCategoryClass">
@if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
<div class="prod-list"> @foreach (var item in Model.Products) { <div class="@item.ProdCategoryClass">
@if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
<div class="prod-list"> @foreach (var item in Model.Products) { <div class="@item.ProdCategoryClass">
@if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
None
None
Prod M Prod P Prod N Prod U Prod S
Prod J Prod A Prod E Prod V
<div class="prod-list"> @foreach (var item in Model.Products) { <div class="@item.ProdCategoryClass">
@if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
None
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ Resource.New }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
None
<div class="prod-list"> @foreach (var item in Model.Products) { <div class="@item.ProdCategoryClass">
@if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } else if (item.IsSoldOut) { <div class="sold-out-ribbon">@Resource.SoldOut</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
None
<div class="prod-list"> @foreach (var item in Model.Products) { <div class="@item.ProdCategoryClass">
@if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
<div id="vue-scope" class="prod-list"> ~~~~~~ </div> <script> var vueApp = new
Vue({ el: '#vue-scope', }); </script>
<div id="vue-scope" class="prod-list"> @foreach (var item in Model.Products) { <div
class="@item.ProdCategoryClass"> @if (item.IsNew) { <div class="new-ribbon">@Resource.New</div> } <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
<div id="vue-scope" class="prod-list"> @foreach (var item in Model.Products) { <div
class="@item.ProdCategoryClass"> <div v-if="@item.IsNew.ToString().ToLower()" class="new-ribbon"> @Resource.New </div> <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
<div id="vue-scope" class="prod-list"> @foreach (var item in Model.Products) { <div
class="@item.ProdCategoryClass"> <div v-if="@item.IsNew.ToString().ToLower()" class="new-ribbon"> @Resource.New </div> <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div> v-if="true" or v-if="false"
<div id="vue-scope" class="prod-list"> @foreach (var item in Model.Products) { <div
class="@item.ProdCategoryClass"> <div v-if="@item.IsNew.ToString().ToLower()" class="new-ribbon"> @Resource.New </div> <div v-else-if="@item.IsSoldOut.ToString().ToLower()" class="sold-out-ribbon"> @Resource.SoldOut </div> <div class="prod-img
[email protected]
@item.ImgLang" style="background-image: url(@Model.ImgCdnUrl/@
[email protected]
)" title="@item.Name"></div> <span class="prod-name" data-pid="@item.ProdId">@item.Name</span> <a href="/providers/@item.ProviderId">@item.Provider</a> </div> } </div>
None
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">@Resource.New</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(@Model.ImgCdnUrl/${item.iconPath}
[email protected]
)`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">@Resource.New</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(@Model.ImgCdnUrl/${item.iconPath}
[email protected]
)`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: { products: null }, created() { $.ajax('/api/products').done((data) => { this.products = data }); }, }); </script>
None
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">@Resource.New</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">@Resource.New</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script> “sensitive data”
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">@Resource.New</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script> “sensitive data” public class DemoViewModel { [JsonIgnore] public string SensitiveData }
None
None
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">@Resource.New</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ _resource.new }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ mixins: [$resource], el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script> <script> var $resource = { data: function() { return { _resource: { new: "@Resource.New", }, }; }, }; </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ _resource.new }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ mixins: [$resource], el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script> <script> var $resource = { data: function() { return { _resource: { new: "@Resource.New", }, }; }, }; </script>
<div id="vue-scope" class="prod-list"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew"
class="new-ribbon">{{ _resource.new }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </div> <script> var vueApp = new Vue({ mixins: [$resource], el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script> <script> var $resource = { data: function() { return { _resource: { new: "@Resource.New", }, }; }, }; </script>
None
None
<div id="vue-scope" class="prod-list"> <item-component v-for="item in products" :item="item" :img-cdn-url="ImgCdnUrl" :img-version="ImgVersion"
/> </div> <script> var vueApp = new Vue({ el: '#vue-scope’, data: @Html.Raw(JsonConvert.SerializeObject(Model)), }); </script>
<template id="item-template"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew" class="new-ribbon">{{
_resource.new }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </template> <script> var ItemComponent = Vue.component('item-component', { template: '#item-template', mixins: [$resource], props: ['item', 'imgCdnUrl', 'imgVersion'], }); </script>
<template id="item-template"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew" class="new-ribbon">{{
_resource.new }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </template> <script> var ItemComponent = Vue.component('item-component', { template: '#item-template’, mixins: [$resource], props: ['item', 'imgCdnUrl', 'imgVersion'], }); </script>
<template id="item-template"> <div v-for="item in products" :class="item.prodCategoryClass"> <div v-if="item.isNew" class="new-ribbon">{{
_resource.new }}</div> <div :class="['prod-img', `prod-img${item.id}-${item.imgLang}`]" :style="`background-image: url(${imgCdnUrl}/${item.iconPath}?${imgVersion})`" :title="item.name"></div> <span class="prod-name" :data-pid="item.prodId">{{ item.name }}</span> <a :href="`/providers/${item.providerId}`">{{ item.provider }}</a> </div> </template> <script> var ItemComponent = Vue.component('item-component', { template: '#item-template’, mixins: [$resource], props: ['item', 'imgCdnUrl', 'imgVersion'], }); </script>
None
None
None
None
None
None
None
None
None
None
[email protected]