Vue知识点总结一

vue简介

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

vue全家桶:vue vue脚手架(vue-cli) vue路由(vue-router) vuex axios

Vue具有轻量级、单数据流、组件拆分、单页面多应用的特点

vue的使用方法

<script src="https://cdn.jsdelivr.net/npm/vue@2.7.7/dist/vue.js"></script>

通过script引用,可以是自己下载的,也可以是cdn即网上的链接,如上

vue的实例创建需要new Vue({})创建

new Vue({
    el:"",
    data:""
})

Vue的数据渲染

普通数据渲染:两个{}花括号渲染,或者使用v-text渲染,v-html可以渲染一些链接

<div id="app">
    {{msg}}
</div>
<div id="app" v-text="msg">
</div>
<div id="app" v-html="href">
</div>
<script>
    new Vue({
        el:"#app",
        data:{
             msg:"你好",
             href:"<a href='https://www.csdn.net'>CSDN</a>"
        }
    })
</script>

if判断渲染:使用v-if进行简单1的渲染

<div id="app">
<p>if判断是控制dom节点的渲染</p>
<p v-if="isLog">已登录</p>
<p v-else>未登录</p>
</div>
<script>
// 创建一个实例
var vm = new Vue({
    // 要挂载的dom节点
    el:"#app",
    // 存储数据
    data:{
        isLog:true
    }
})
</script>

使用v-if和v-else-if还有v-else进行进阶的渲染

<div id="app">
<h4>if嵌套</h4>
<p v-if="fen >= 90">优秀</p>
<p v-else-if="fen >= 80">不错</p>
<p v-else-if="fen >= 70">良好</p>
<p v-else-if="fen >= 60">及格</p>
<p v-else>不及格</p>
</div>
<script>
// 创建一个实例
var vm = new Vue({
    // 要挂载的dom节点
    el:"#app",
    // 存储数据
    data:{
        fen:55
    }
})
</script>

v-model双向绑定:v-model依赖于有value属性的东西,例如input,select等等

<div id="app">
    <b>model指令 input双向绑定</b><br>
    <input type="text" v-model="str">
    <p>{{str}}</p>
</div>

<script>
var vm = new Vue({
    el:"#app",
    data:{,
        str:"CSDN"
    }
})
</script>

v-title、v-for和v-bind:

<div id="app">
    <b>bind指令 动态渲染html属性</b>
    <a v-bind:href="url">跳转百度</a>
    <p v-bind:style="'font-size:'+size+';color:#f00'">你好</p>
    <p :title="title">一段话</p>
</div>

<script>
var vm = new Vue({
    el:"#app",
    data:{
        size:"28px",
        title:"我是个p标签",
        str:"def"
    }
})
</script>
<div id="app">
    <b>for循环遍历对象</b>
    <p v-for="item in obj">{{item}}</p>
    <b>for循环遍历对象的时候可以加入第二个参数 代表键</b>
    <p v-for="(item,name) in obj">{{name}}--{{item}}</p>
    <b>for循环遍历对象的时候可以加入第三个参数 代表索引</b>
    <p v-for="(item,name,index) in obj">{{index}}、{{name}}--{{item}}</p>
    <b>优化列表渲染 加key值是为了优化diff算法</b>
    <b>虽然key值不会对程序造成影响  但 要求必须加key值</b>
    <p v-for="(item,index) in list" v-bind:key="index">{{item}}</p>
</div>
<script>
// 创建一个实例
var vm = new Vue({
    // 要挂载的dom节点
    el:"#app",
    // 存储数据
    data:{
        list:["学习javascript",123456,"学习小程序2"],
        obj:{
            title:"标题",
            author:"Edwin",
            time:20220726
        }
    }
})
</script>

事件绑定 v-on:或者用@

<div id="app">
    <b>在vue中通过  v-on  指令绑定一个事件</b><br>
    <button v-on:click="num++">{{num}}</button>
    <button @click="num++">{{num}}</button><br>

    <button @click="calc(-1)">-</button>
    <input type="text" size="2" v-model="num">
    <button @click="calc(1)">+</button>
</div>

<script>
var vm = new Vue({
    el:"#app",
    data:{
        num:5
    },
    // methods 用于定义方法事件
    methods:{
        calc(n){
            // 通过this.num 获取data数据中的num值
            this.num = this.num + n
        }
    }
})
</script>

vue动态绑定类名和style

<style>
    .active{
        border-bottom: 2px solid #f0f;
    }
    .danger{
        background-color: #f00;
    }

</style>
</head>
<body>
<div id="app">
    <b>动态绑定class类名</b><br>
    <i>对象的方式 当值为true时 键当做类名绑定 当值为false时 不绑定当前类名</i>
    <div v-bind:class="{'active':isActive,'danger':hasError}">这是个div</div>

    <i>数组的方式  数组的每一项都会当做类名渲染</i>
    <p :class="['aa','bb']">这三个类名一样</p>
    <p class="aa bb">这三个类名一样</p>
    <p :class="'aa bb'">这三个类名一样</p>
    <p :class="[active,errorclass]">这是个p标签</p>

    <b>动态绑定style</b>
    <i>对象的方式 键当做样式的属性 值当做样式的值</i>
    <p :style="{color:color,fontSize:fontSize}">有一段话</p>
    
    <i>数组的方式 每个数组项都可以是一个样式的对象 然后把数组中的每个对象合并成一个style</i>
    <p :style="[baseStyle,styles]">还有一段话</p>
</div>

<script>
var vm = new Vue({
    el:"#app",
    data:{
        isActive:true,
        hasError:false,
        active:"activea",
        errorclass:"danger",
        color:"red",
        fontSize:"20px",
        baseStyle:{
        margin:'0',
        padding:'0'
        },
        styles:{
        color:"#ff0",
        fontSize:"22px"
        }
    }
})
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭郭郭憨憨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值