vue学习笔记

vue简介

功能:        
    - 解耦视图与数据
    - 可复用的组件
    - 前端路由
    - 状态管理
    - 虚拟DOM
使用:
〈!一自动识别最新稳定版本的 Vue . j s 一〉
<script src = ” https : //unpkg.com/vue/d工 st/vue.min.js ” ></ scripp
〈! 一指定某个具体版本的 Vue . j s 一〉
<script src= ” https : //unpkg . com/vue@2.1.6/dist/vue . min.j s ” ></ script> 

实例与数据绑定

<div id=” app ”></div>

var app =new Vue({ 
el: document.getElementByld ( ’ app ’) //或者是 ’# app ’
data:{
    a:2    
    }
}) 
加载后通过app.$el访问该元素。
data内的属性可直接使用app.a访问

生命周期钩子

created 创建实例完成后调用,尚未挂载,$el不可用。用于初始化处理的数据。
mounted el挂载后调用,一般第一个业务逻辑。
beforeDestroy 实例销毁之前调用。用于解绑一些使用addEventListener监听事件

插值与表达式

{{}}数据双向绑定
v-html指令 输出html而不是纯文本。
v-pre 指令 跳过元素和子元素编译过程,不处理{{}}、指令等等
{{number I 10 }}    {{ isOK ? ’ 确定 ’:’ 取消 ’ }} {{ text . split ( ’,’ ) . reverse () . j o 工 n ( ’,’) } 表达式

过滤器

<div id=” app” >
{ { date | formatDate}}
</div> 
<script> 
//在月份、日期、小时等小于 10 时前面补 0
var padDate = function (value ) { 
    return value < 10 ? ’ 。 , + val ue : value ; 
}
var app =new Vue({ 
    el : ’ #app ’ , 
    data: { 
    date : new Date() 

    filters : { 
        formatDate : function (value) { //这里的 value 就是需要过滤的数据
        var d ate= new Date(value); 
        var year= date . getFullYear() ; 
        var month= padDate(date.getMonth() + 1) ; 
        var day= padDate(date . getDate()); 
        var hours= padDate(date . getHours()); 
        var minutes = padDate (date .getMinutes ()); 
        var seconds = padDate (date .getSeconds ()); 
        //将整理好的数据返回出去
        return year + ’-’ + month +’-’ + day + ” + hours + ’:’ + minutes
        +’: ’ + seconds ; 
    mounted : function () { 
    var this = this ; //声明一个变量指向 Vue 实例 this ,保证作用域一致
    this . timer= setinterval(function() { 
    this.date= new Date(); //修改数据 date
    } ' 1000) ; 
    beforeDestroy: function () { 
    if (this.timer) { 

    }) 
</script>     

指令

##v-if 
<div id="app">
    <p v-if="show">if show 显示</p>
</div>
<script>
    var app = new Vue({
        el:"#app",
        data:{
            show :true
        }
    });
</script>
##v-bind //绑定属性
<div id="app">
    <a v-bind:href="url">链接</a>
    <img v-bind:src="url">链接</img>
    //<a :href="url">链接</a> 简写
     //<img :src="url">链接</img>
</div>
<script>
    var app = new Vue({
        el:"#app",
        data:{
            url : ‘http://www.github.com’,
            imgUrl:‘http://xxxx.com/img.png’
        }
    });
</script>
##v-on //绑定事件
<div id="app">
    <p v-if=“show”>链接</a>
    <img v-on:src="url">链接</img>
</div>
<script>
    var app = new Vue({
        el:"#app",
        data:{
            show : false,
            imgUrl:‘http://xxxx.com/img.png’
        }
    });
</script>

计算属性

定义在VUE实例的computed 选项中。
是一个类似于视图的虚拟属性。可在其中定义setting getting方法来访问或者更新源数据,相应源属性更新计算属性也会更新。
计算属性也常用于clas的动态更新,以及内联样式。
在自定义组件中常用于动态传递props。
计算属性还可以依赖其他计算属性更可以跨VUE实例依赖。

class与style动态绑定

##绑定对象动态class渲染
<div id="app">
    <div :class=“{‘active’:isActive,‘error’:isError}”></div>
</div>
<script>
    var app= new Vue({
        el:'#app',
        data:{
            isActive:true,
            isError:false
        }
    })
</script>
##绑定计算属性或者methods
:class=“classes”
computed:{
    classes:function(){
        return {
            active:this。isActive == true "active": ""
        }
    }
}

##绑定数组
:class="[activeCls,errorCls]"
data:{
    activeCls:"active",
    errorCls:"error"
}
##数组三元表达式
:class ="[isActive ? activeCls:'',errorCls]"
data:{
    isActive : true,
    activeCls:"active",
    errorCls:"error"
}
##组件中使用时只能应用于第一次,组件内部包含子元素时用:props传递应用。
##绑定内联样式
:style='{‘color’:color,‘fontSize’: fontSize+'px'}'
data: {
    'color':red,
    'fontSize' : 14
}
##样式绑定数组
:style:[styleA,styleB]

基本指令

v-cloak 界面加载未编译时不展示
v-once 只渲染一次
v-if v-else-if v-else 条件渲染
v-show 与v-if 基本一致v-show修改元素的display属性,且不能在<template>使用,v-if销毁元素开销大,频繁切换时应用show
v-for 列表渲染指令v-for ="(book,index) in books"迭代对象v-for=“(key,value,index) in object”迭代数字v-for=‘n in 10’

方法与事件

@click=“counter++”
##修饰符
@click.stop=“handlerClick” == event.preventDefault()阻止单击事件冒泡
@submit.prevent="handlerSubmit" 提交事件不再重载
@click.stop.prevent 修饰符串联
@submit.prevent 可以只有修饰符
@click.capture='handlerCapture' 使用事件捕获模式
@click.self 元素本身产生的事件。
@click.once 只触发一次
##keyUp修饰符
@keyUp.13 //
Vue.config.keyCodes.f1=112;//全局定义f1为112
@keyUp.f1
.enter
.tab    
.delete
.esc
.space
.up
.down
.left
.right
按键修饰符组合使用也可与鼠标配合使用
.ctrl
.alt
.shift
.meta(Mac Command键 win win键)

v-model 表单绑定

v-modle="text"
data:{
    text:""
}
v-model 元素只依赖绑定数据,中文输入法拼音阶段不更新数据,可用@input

组件

基本用法:
Vue.component("my-component",{
                template:"<div>全局组件内容</div>"    
            });    

var app = new Vue({
    el:'#app',
    components:{
        'my-component':{
            template:"<div>局部注册组件</div>"    
        }
    }
});
##共享data数据
var data=0
Vue.component("my-component",{
                template:"<div>全局组件内容</div>",    
                data: function(){
                    return data;
                }
            });    
##不共享data数据
//var data=0
Vue.component("my-component",{
                template:"<div>全局组件内容</div>",    
                data: function(){
                    return {data:0};
                }
            });    


##组件通讯props
基本用法
//直接使用props传递仅字符串,数组对象等应使用绑定对象:message
<my-component message="父组件数据"></my-component>
<my-component :message="绑定父组件数据,子组件实时联动"></my-component>
Vue.component('my-component',{
                props:['message'],
                template:'<div>{{message}}</div>'
            });    

##组件传入数据校验
Vue.component('my-component',{
                props:{
                    propA:{
                        type:Boolean,default:true,required:true
                    },
                    propB:Number,
                    propC:[Number,String,Array],
                    propD:{
                        validator:function(value){return value >10;}                            
                    }
                },
                template:'<div>{{message}}</div>'
            });    
##组件通信自定义事件
父子间组件事件通讯
子组件触发 :this.$emit("eventName",this.dataname);
父组件 @eventName=fun1 
子组件触发 :this.$emit("input",this.dataname);
父组件: v-model
非父子组件事件通讯
$dispatch 下=>上级 定义在Vue 对象的events中接受
    this.$dispatch('on-message',msg);
events:{
    on-message:function(msg){
        this.message=msg;
    }
}
$broadcast 上=>下级 
与上相同
##slot分发,具名slot
组件使用<slot></slot>标签
<div id = 'app'>
    <child-component>
        <p slot=“head’>分发的内容,替换name=head 的slot</p>
        <p>更多分发的内容</p>
    </child-component>
</div>
<script>
    Vue.component('child-component',{template:'\
                <div>\
                    <slot>\
                        <p>默认内容</p>
                    <\slot>    \    
                </div>\
                    //具名slot
                <slot name="head"></slot>
                '});
    var app= new Vue({
        el:"#app"
    });
</script>
##作用域卡槽(slot)
<div id='app'>
    <my-list :books="books">
        <template slt=='book' scope="props">
            <li>{{props.bookName}}</li>
        </template>
    </my-list>
</div>
<script>
    Vue.component('my-list',{
                    props:{
                        books:{
                            type:Array,default:function(){ return [];}
                        }    
                    },
                    template:"\

                        <ul>\
                            <slot name='book' v-for="book in books" :book-name="book.name"></slot>\
                        <\ul>\    
                    "  

                    });
    var app= new Vue({
        el:'#app',
        data:{
            books:[
                    {name:'vue.js实战'},
                ]
            }
    });


    </script>
##动态组件
<component is="comX"></component>
var app=new Vue({
    el:“#app”,
    data:{
        comX:“comA”,    
    }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip
毕设新项目基于python3.7+django+sqlite开发的学生就业管理系统源码+使用说明(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 学生就业管理系统(前端) ## 项目开发环境 - IDE: vscode - node版本: v12.14.1 - npm版本: 6.13.4 - vue版本: @vue/cli 4.1.2 - 操作系统: UOS 20 ## 1.进入项目目录安装依赖 ``` npm install ``` ## 2.命令行执行进入UI界面进行项目管理 ``` vue ui ``` ## 3.编译发布包(请注意编译后存储路径) #### PS:需要将编译后的包复制到后端项目的根目录下并命名为'static' 学生就业管理系统(后端) ## 1.项目开发环境 - IDE: vscode - Django版本: 3.0.3 - Python版本: python3.7.3 - 数据库 : sqlite3(测试专用) - 操作系统 : UOS 20 ## 2.csdn下载本项目并生成/安装依赖 ``` pip freeze > requirements.txt pip install -r requirements.txt ``` ## 3.项目MySQL数据库链接错误 [点击查看解决方法](https://www.cnblogs.com/izbw/p/11279237.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值