CSCI E-12 Resources
Vue directives are built into markup (e.g. v-for
and v-bind
). The advantage here is that Vue takes care of updating content when underlying data changes.
Snippet of Vue code that formats list of resources:
<ul class="resources">
<li v-for="r in urls" class="resource">
<a v-bind:href="r.url">
<img v-if="r.image" v-bind:src="r.image" />
</a>
<div class="title">
<a v-bind:href="r.url">{{ r.title }}</a>
</div>
<div class="hostname">{{ r.hostname }}</div>
<div class="description">{{ r.description }}</div>
</li>
</ul>
And the JSON data (snippet) that powers it:
{
"urls": [
{
"url": "https://alistapart.com/",
"title": "A List Apart",
"description": "For people who make websites",
"image": "https://i2.wp.com/alistapart.com/wp-content/uploads/2019/03/cropped-icon_navigation-laurel-512.jpg?fit=512%2C512&ssl=1"
},
{
"url": "https://learn.jquery.com/",
"title": "jQuery Learning Center",
"keywords": "javascript, library",
"image": "https://cscie12.dce.harvard.edu/images/site-card-jquery.png"
},
{
"url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview",
"title": "An overview of HTTP | MDN",
"description": "HTTP is a protocol for fetching resources such as HTML documents. It is the foundation of any data exchange on the Web and it is a client-server protocol, which means requests are initiated by the recipient, usually the Web browser. A complete document is reconstructed the different sub-documents fetched, for instance, text, layout description, images, videos, scripts, and more.",
"image": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview/fetching_a_page.png"
},
{
"url": "http://www.w3.org/",
"title": "World Wide Web Consortium (W3C)",
"description": "The World Wide Web Consortium (W3C) is an international community where Member organizations, a full-time staff, and the public work together to develop Web standards.",
"image": "https://www.w3.org/Icons/WWW/w3c_home_nb-v.svg"
}, ... ]}