Vue.js小案例(1)

数据绑定

数据绑定是vue.js的基础。本例中就是利用了vue.js的v-model指令在表单元素上创建双向数据绑定。

<!--这是我们的View-->
<div id="app">
    <p>{{ message }}</p>
    <input type="text" v-model="message"/>
</div>

<script>
    // 这是我们的Model
    new Vue({
        el: ‘#app‘,
        data: {
            message:‘Hello World!‘
        }
    })
</script>

将message绑定到文本框,当更改文本框的值时,<p>{{ message }}</p> 中的内容也会被更新。

导航切换

这里主要应用了vue.js的v-for指令来渲染一个列表、v-bind指令来绑定class以及v-on指令来处理事件

1这是HTML代码 

<div id="main">
2     <nav @click.prevent>
3         <a v-for="item in items" :class="{‘show‘: item.active}" @click="makeActive(item, $index)">{{item.name}}</a>
4     </nav>
5     <p>You chose <b>{{active}}</b></p>
6 </div>

css代码:

 1 *{
 2     margin:0;
 3     padding:0;
 4 }
 5 #main{
 6     width:432px;
 7     margin:0 auto;
 8     text-align:center;
 9 }
10 nav{
11     display:inline-block;
12     margin:60px auto 45px;
13     background-color:#5597b4;
14     box-shadow:0 1px 1px #ccc;
15     border-radius:2px;
16 }
17 nav a{
18     display:inline-block;
19     padding: 18px 30px;
20     color:#fff !important;
21     font-weight:bold;
22     font-size:16px;
23     text-decoration:none !important;
24     line-height:1;
25     background-color:transparent;
26     -webkit-transition:background-color 0.25s;
27     -moz-transition:background-color 0.25s;
28     transition:background-color 0.25s;
29     cursor:pointer;
30 }
31 b{
32     display:inline-block;
33     padding:5px 10px;
34     background-color:#c4d7e0;
35     border-radius:2px;
36     font-size:18px;
37 }
38 .show{
39     background-color:#e35885;
40 }

JS代码:

var vm = new Vue({
    el:‘#main‘,
    data:{
        active:‘HTML‘,
        items:[
            {name:‘HTML‘, active:true},
            {name:‘CSS‘, active:false},
            {name:‘JavaScript‘, active:false},
            {name:‘Vue.js‘, active:false}
        ]
    },
    methods: {
        makeActive: function(item, index){
            this.active = item.name;
            for(var i=0; i<this.items.length;i++){
                this.items[i].active = false;
            }
            this.items[index].active = true;
        }
    }
});

你们快试试吧!

时间: 2024-08-02 23:22:38

Vue.js小案例(1)的相关文章

Vue.js小案例(2)

即时搜索 这个例子主要应用了vue.js的自定义过滤器,可以通过Vue.filter()注册一个全局过滤器,具体用法可以参考这里,vue.js也提供了一些内置过滤器. CSS代码: [v-cloak] { display: none; } *{ margin:0; padding:0; } body{ font-family:Microsoft YaHei; text-align:center; } li{ list-style:none; } .bar{ background-color:#5

JS小案例分析

a.微博输入删除小案例 <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; padding: 0; } ul { list-style: none; } .box { width: 600px; margin: 100px auto; b

node.js(小案例)_实现学生信息增删改

一.前言 本节内容主要对小案例做一个总结: 1.如何开始搭建小项目 2.路由设计 3.模块应用 4.项目源码以及实现过程github地址: 项目演示如下: 二.主要内容 1.项目的关键性js源码: 项目的入口: /** * app.js 入门模块 * 职责: * 创建服务 * 做一些服务相关配置 * 模板引擎 * body-parser 解析表单 post 请求体 * 提供静态资源服务 * 挂载路由 * 监听端口启动服务 */ var express = require('express') v

vue图书小案例

小知识点: vue中计算属性有缓存(对象属性变化时才会更新),方法没有缓存,所以计算属性比方法效率高js中let有块级作用域,var没有块级作用域,所以var是有缺陷的this.letters[0] = 'bb'; //vue中,这种做法并不是响应式的:推荐使用响应式方法:this.letters.splice(0,1,'cc'); <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q

vue.js 入门案例

作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1 vue.js 研究 1.1 vue.js 介绍 1.1.1.vue.js是什么? Vue (读音 /vju?/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计 为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当与现代化的工具链以及各种 支持类库结合使用时, Vue 也完全能够为复杂的单页应用提供驱动. 渐进式框架:Progressi

10个js小案例

知识梳理: 1.DOM(document object model)文档对象模型:html(标签对象集合) 标签名获取对象:document.getElementsByTagName('标签名');//返回的是一个数组 类名获取对象:document.getElementsClassName('类名’);//返回的是一个数组 id获取(id唯一):document.getElementById(); 获取内容标签:innerText,innerHTML 区别:innerHTML可以把标签写进ht

Vue.js小Demo--单选和复选功能实现

Vue官方文档上有单选按钮radio和复选按钮checkbox的例子. 受此启发,写了这个小demo. 演示图: demo.vue文件代码: <div> <div class="Select"> <p class="Title">Single choice</p> <span class="Box" :class="{Selected_active:index == One}&quo

JS小案例(基础好烦恼少)----持续更新

1 *************************************************** 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>Document</title> 7 8 </head> 9 <body> 10 本金10000元存入银行

js小案例:5同学投票竞选班长

<script>var array1=new Array();var array2=new Array();for(var i=0;i<5;i++){ array1[i]=0; array2[i]=1;}for(var i=1;i<5;i++){ array2[i]=parseInt(array2[i-1])+1; }var fei=0;var piao=0;for(var i=0;i<20;i++){ var value=prompt("第"+(i+1)