当前位置: 首页 > news >正文

Vue.js实例练习

最近学习Vue.js感觉跟不上节奏了,Vue.js用起来很方便。

主要实现功能,能添加书的内容和删除。(用的Bootstrap的样式)demo链接

标题用了自定义组件,代码如下:

components: {
    'my-title': {
        template: '<h1 v-text="title"></h1>',
        data: function () {
            return {
                title: 'Vue.js 实例练习 Bootstrap样式'
            }
        }
    }
}

增加书的内容和表格用的都是指令+列表渲染,vue.js构造单页面应用确实很方便。

Vue.js提供的指令很快的渲染想要的内容。这里主要用了v-for嵌套使用。

v-for还包含2个特殊变量:$index,$key。能遍历数组和对象。 全部代码如下:

<!DOCTYPE html>
<html">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    
</head>
<body>
    <style>
        #app {
            width: 990px;
            padding: 0 15px;
            margin: 0 auto;
        }
    </style>
    <div id="app">
        <my-title></my-title>
        <div id="divTblBook">
            <table class="table table-hover">
                <thead>
                    <tr>
                        <th v-for="b in bookShow">{{ b }}</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="item in books">
                        <td v-for="b in item">{{ item[$key] }}
                        </td>
                        <td>
                            <button class="btn btn-primary" v-on:click="delBook(item)">删除</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
        <div id="divAddBook">
            <p>添加书籍</p>
            <div v-for="b in bookShow">
                <div class="form-group">
                    <label>{{ b }}</label>
                    <input type="text" class="form-control" v-model="book[$key]">
                </div>
            </div>
            <button class="btn btn-primary" v-on:click="addBook()">添加</button>
        </div>
    </div>
    <link href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css" rel="stylesheet" />
    <script src="http://apps.bdimg.com/libs/vue/1.0.14/vue.js"></script>
    <script>
        var vm = new Vue({
            el: "#app",
            components: {
                'my-title': {
                    template: '<h1 v-text="title"></h1>',
                    data: function () {
                        return {
                            title: 'Vue.js 实例练习 Bootstrap样式'
                        }
                    }
                }
            },
            data: {
                books: [{
                    author: '曹雪芹',
                    name: '红楼梦',
                    price: 32.0
                }, {
                    author: '施耐庵',
                    name: '水浒传',
                    price: 30.0
                }, {
                    author: '罗贯中',
                    name: '三国演义',
                    price: 24.0
                }, {
                    author: '吴承恩',
                    name: '西游记',
                    price: 20.0
                }],
                book: {
                    Name: '',
                    Author: '',
                    price: ''
                },
                bookShow: {
                    Name: "书名",
                    Author: "作者",
                    price: "价格"
                }
            },
            methods: {
                addBook: function () {
                    this.books.push(this.book);
                    this.book = "";
                },
                delBook: function (book) {
                    this.books.$remove(book);
                }
            }
        })
    </script>
</body>
</html>

 

转载于:https://www.cnblogs.com/cyclone77/p/5345231.html

相关文章:

  • 甲骨文云数据中心正式落地 中国云服务商面临的威胁是什么?
  • Android入门(十九)WebView
  • 希尔排序及希尔排序java代码
  • 夯实企业IT服务根基 走云服务必经之路
  • 爱奇艺、优酷、腾讯视频竞品分析报告2016(一)
  • 《中国人工智能学会通讯》——8.10 特征学习
  • 值得学习的粒子思路
  • nginx反向代理
  • Map or switch
  • 文本编辑器Sublime Text3
  • 通过STL中的string看写时拷贝和读时拷贝
  • 【python】-- Socket粘包问题 ,解决粘包的几种方法、socket文件下载,md5值检验
  • 【R与数据库】R + 数据库 = 非常完美
  • PHP魔术方法总结
  • python获取绑定的IP,并动态指定出口IP
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Apache Spark Streaming 使用实例
  • Git同步原始仓库到Fork仓库中
  • hadoop集群管理系统搭建规划说明
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java IO学习笔记一
  • Java方法详解
  • JS+CSS实现数字滚动
  • leetcode388. Longest Absolute File Path
  • Nacos系列:Nacos的Java SDK使用
  • node.js
  • PHP面试之三:MySQL数据库
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • React系列之 Redux 架构模式
  • spark本地环境的搭建到运行第一个spark程序
  • 大整数乘法-表格法
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 观察者模式实现非直接耦合
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用Swoole加速Laravel(正式环境中)
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 小李飞刀:SQL题目刷起来!
  • 转载:[译] 内容加速黑科技趣谈
  • scrapy中间件源码分析及常用中间件大全
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #pragma 指令
  • (1) caustics\
  • (4)Elastix图像配准:3D图像
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Ruby)Ubuntu12.04安装Rails环境
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (三) diretfbrc详解