前端框架开始学习Vue(二)

1 根据关键字实现数组的过滤

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href="css3.3.7/bootstrap.css"/>
    </head>
    <script src="vue.js"></script>
    <body>
        <div id="app">
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h3 class="panel-title">添加品牌</h3>
                </div>
                <div class="panel-body form-inline">
                    <label for="">
                        id: <input type="text" class="form-control" v-model="id"/>
                    </label>

                    <label for="">
                        name: <input type="text" v-model="name" />
                    </label>
                    <!--在Vue中,使用事件绑定机制,为元素指定处理函数,
                        如果加了小括号,就可以传参
                    -->
                    <input type="button"
                        value="添加" class="btn-primary" @click="add()"/>

                    <input type="text" v-model="keyword"/>
                </div>
            </div>

            <table border="" cellspacing="" cellpadding="" class="table table-bordered table-hover table-striped">
                <thead>
                    <tr><th>id</th>
                    <th>name</th>
                    <th>time</th>
                    <th>operation</th>
                </tr>
                </thead>
                <tbody>
                    <!--之前 v-for中的数据,都是直接从data上的list中直接渲染的-->
                    <!--现在,我们自定义serarch方法,通过传参形式传递给serarch-->
                    <!--在serarch方法内部通过执行for 循环,把符合的返回-->
                    <tr v-for="item in serarch(keyword)" :key="item.id">
                    <td>{{item.id}}</td>
                    <td v-text="item.name"></td>
                    <td>{{item.ctime}}</td>
                    <td><a href="" @click.prevent="dele(item.id)">删除</a></td>
                </tr>
                </tbody>

            </table>
        </div>
        <script type="text/javascript">
            var vm=new Vue({
                el:‘#app‘,
                data:{
                    id:‘‘,
                    name:‘‘,
                    keyword:"",
                    list:[
                    {id:1,name:‘灰蒙蒙1‘,ctime:new Date()},
                    {id:2,name:‘宝‘,ctime:new Date()},
                    ]
                },
                methods:{
                    add(){
                        this.list.push({id:this.id,name:this.name,
                            ctime:new Date()})
                        this.id=this.name=‘‘
                    },
                    dele(id){//根据id 找到并删除数据
//                        this.list.some((item,i)=>{
//                            this.list.splice(i,1)
//                            if(item.id==id){return true}
//                        }
//                        )
                        var index= this.list.findIndex(item=>{
                            if(item.id==id){
                                return true
                            }
                        })
                        this.list.splice(index,1)
                    },
                    serarch(keyword){
//                        var newList=[]
//                        this.list.forEach(item=>{
//                            if(item.name.indexOf(keyword)!=-1){
//                                newList.push(item)
//                            }
//
//                        })
//                        return newList

                        //     注意:forEach some filter findIndex这些都属于数组的新方法
                        // 都会对数组的每次进行遍历执行相关的操作
                        return this.list.filter(item=>{
                            // 注意:Es6中,为字符串提供了一个新方法,叫做
                            // String:prototype.includes(‘要包含的字符串‘)
                            // 如果包含,则返回 true,反之
                            if(item.name.includes(keyword)){
                                return item
                            }

                        })
                    }
                }
            })
        </script>
    </body>
</html>

--筛选过滤




2 全局过滤器使用

            // 过滤器定义语法
            // Vue.filter(‘过滤器名‘,function(){})
            // 过滤器中的function,第一个参数,已经被规定死了,
            //  永远都是过滤器管道符传递过来的数据
             Vue.filter(‘过滤器名‘,function(data){
                 return data+‘123‘
             })
        </script>
    </body>
</html>
<!--过滤器调用时候的格式  {{name | 过滤器名}}-->

--过滤器定义

    <body>
        <div id="app">
            <p>{{msg | msgFormat(‘疯狂‘)}}</p>
        </div>

        <script type="text/javascript">
            Vue.filter(‘msgFormat‘,function(data,arg){
                // 字符串的 replace 方法,第一个参数,除了可写一个字符之外,
                // 还可以定义一个正则
                return data.replace(/单纯/g,arg)
            })

            var vm=new Vue({
                el:"#app",
                data:{
                    msg:‘曾经,我也是一个单纯的少年,单纯的我也一直很单纯‘
                }
            })
        </script>
    </body>

--传参过滤器定义

自定义私有过滤器

  调用的时候,采用的是就近原则,如果私有过滤器和全局过滤器名称一致,

  优先调用私有过滤器



3 Es6 方法 padStart 方法

var m =(dt.getMonth()+1).toString().padStart(2,‘0‘)



4 按键修饰符(按键事件)

参考官方文档 https://cn.vuejs.org/v2/guide/events#%E6%8C%89%E9%94%AE%E4%BF%AE%E9%A5%B0%E7%AC%A6

  

也可以输入键码值 @keyup.113="add"

 

原文地址:https://www.cnblogs.com/Skyda/p/10225533.html

时间: 2024-12-11 02:19:23

前端框架开始学习Vue(二)的相关文章

前端框架开始学习Vue

 定义基本Vue代码结构 1 v-text,v-cloak,v-html命令 默认 v-text没有闪烁问题,但是会覆盖元素中原本的内容,插值表达式只会替换自己的占位符, <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <script src="vue.js"> &l

前端框架MVVM和VUE的理解和应用

市面上很多开源的程序里面用的前端框架以前大多用的MVVM的框架,后面逐渐的都被VUE的框架代替了,像一些比较活跃的开源程序更新轨迹上就可以看到一开始用的是MVVM模式,后期更新为VUE的框架,类似开源商城DSMall3.0之前手机端用的是MVVM模式,在3.0之后便更换成VUE的框架了,那MVVM和VUE个有什么不同呢?一.对于MVVM的理解??MVVM?是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View?代表

【实习40天-60天】odoo前端框架的学习

前言 Odoo 是一个开源框架,针对 ERP 的需求发展而来,适合定制出符合客户各种需求的 ERP 系统和电子商务系统 但是正因为是框架,且是一个集成框架,别人的界面与代码早已完成 所以在别人的代码上修改(二次开发),对我来说是一个很大的挑战 odoo前端的组成 odoo运用的框架 odoo前端是一个很老的框架,名叫 backbone,在以前也是很流行的 backbone的特点:轻,兼容性好.缺点:相比流行框架比起来学习成本高 但当年用来实现 MVC 的选型:jquery, underscore

SSH框架入门学习之二(spring)

Spring也是一个开源框架,我在学习Spring的时候,觉得最重要的几点是:IOC(控制反转).AOP(面向切面)和容器概念. 具体的教程还请大家去看网上的视频,这里贴一个小Demo以供学习.(前提是大家把该导入的jar包都导入了) 1.Student类和Teacher类 public class Student { private String name; public String getName() { return name; } public void setName(String

主流前端框架对比:Vue.js , React, Angular.js

个人认为Vue.js的文档最恳切.我认为结合文档和遇到问题Google答案的匹配度来讲:Vue.js > ReactJS > AngularJS > Angular 2 如何使用Vue.js? 1.安装 (1)script 如果项目直接通过script加载CDN文件,代码示例如下: <script src="http://webapp.didistatic.com/static/webapp/shield/z/vue/vue/1.0.24/vue.min.js"

jfinal框架教程-学习笔记(二)

上一节介绍了jfinal框架的简单搭建,这节通过一个小例子了解jfinal的结构和特点 先上图 1.建数据库(我用的是oracle数据库,其他的相对也差不多) -- Create table create table CLASSES ( classesid NUMBER not null, classesname VARCHAR2(20), classesaddress VARCHAR2(50) ); -- Create table create table STUDENT ( studenti

七周七种前端框架四:Vue.js 组件和组件通信

基本是按照官网的 Guide 全部梳理了一遍:http://vuejs.org/guide/index.html 这里我们以一个 Todo List 应用为例来把相关的只是都串起来,这篇里面的全部代码都在github上 https://github.com/lihongxun945/vue-todolist Vue 实例 一个 Vue 应用是由一个 root vue instance 引导启动的,而 Vue instance 是这么创建的: var vm = new Vue({ // optio

前端框架之jQuery(二)----轮播图,放大镜

事件 页面载入   ready(fn)  //当DOM载入就绪可以查询及操纵时绑定一个要执行的函数.   $(document).ready(function(){}) -----------> $(function(){}) 事件处理   $("").on(eve,[selector],[data],fn)  // 在选择元素上绑定一个或多个事件的事件处理函数.    //  .on的selector参数是筛选出调用.on方法的dom元素的指定子元素,如:   //  $('u

SpringMVC框架的学习(二)

通过注解的方式来代替配置信息 1首先我们需要导入aop的jar包 之后在Eclipse中的help中market 搜索springtools的工具 2之后我们需要在springmvc的配置文件(xml)加入下面代码 <context:component-scan base-package="com.zhiyou100.xth.controller"></context:component-scan> <!-- 开启注解驱动 --> <!-- 配