vue的指令

我之前学了学angular

发现angular和vue的指令有点类似

先说一下

new  Vue({

el: "#box", // element(元素) 当前作用域

data(){

return { //用return返回对象

msg: "122"

}

}

})

首先是

v-model双向绑定数据

<input type="text" v-model="msg"/>   {{msg}} <!--取数据-->

v-for循环

 1 <div id="box">
 2     <ul>
 3         <!--ng-repeat-->
 4         <li v-for="item in arr">
 5             <span>{{item.name}}</span>
 6             <span>{{item.age}}</span>
 7         </li>
 8     </ul>
 9 </div>
10 <script type="text/javascript">
11     new Vue({
12         el:‘#box‘,
13         data(){
14             return{
15 //                arr:[‘module‘,‘views‘,‘controlle‘,‘aaaaa‘]
16                 arr:[
17                     {"name":"xiaohong1","age":12},
18                     {"name":"xiaohong2","age":12},
19                     {"name":"xiaohong3","age":12},
20                     {"name":"xiaohong4","age":12}
21                 ]
22             }
23         }
24     })
25 </script>

v-show 显示与隐藏

<div id="box">
    <div style="width: 100px;height: 100px;background: black;display: none" v-show="show"></div>
</div>
</body>
<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-if显示与隐藏  (dom元素的删除添加   个人理解)

<div id="box">
    <div style="width: 100px;height: 100px;background: black;" v-if="show"></div>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-else

<div id="box">
    <div style="width: 100px;height: 100px;background: black;" v-if="show"></div>
    <div style="width: 300px;height: 300px;background: blue" v-else=""></div>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-else-if

<div id="box">
    <div style="width: 100px;height: 100px;background: black;" v-if="show"></div>
    <div style="width: 100px;height: 100px;background: aqua;" v-else-if=""></div>
    <div style="width: 300px;height: 300px;background: blue" v-else=""></div>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-bind

<div id="box">
    <input type="text" v-bind:value="msg">
    <a :href="link">点击</a>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                msg: "12222",
                link:"1、v-model.html"
            }
        }
    })
</script>

v-on 事件

<div id="box">
    <!-- v-on -->
    <button v-on:click="say">按钮</button>
    <!--<button @click="say">按钮</button>-->
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {}
        },
        methods: {
            say() {
                alert(111);
            }
        }
    })
</script>

v-text读取文本不能读取html标签

 1 <div id="box">
 2     <div v-text="msg"></div>
 3 </div>
 4
 5 <script>
 6     new Vue({
 7         el: "#box",
 8         data(){
 9             return {
10                 msg:"11111"
11             }
12         },
13         methods: {
14             say() {
15                 alert(111);
16             }
17         }
18     })
19 </script>

v-html  能读取html标签

<div id="box">
    <div v-html="msg"></div>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                msg:"<h1>121212</h1>"
            }
        },
        methods: {
            say() {
            }
        }
    })
</script>

v-class 类名

 1 <style>
 2         .red {
 3
 4             background: red;
 5         }
 6
 7         .blue {
 8             width: 100px;
 9             height: 100px;
10             background: blue;
11         }
12
13     </style>
14
15
16 <div id="box">
17     <div style="width: 100px;height: 100px;" v-bind:class=‘{red:isred}‘></div>
18     <!--<div style="width: 100px;height: 100px;" v-bind:class=‘isred?"red":"blue"‘></div>-->    <!--三元运算符方式-->
19     <!--<div style="width: 100px;height: 100px;" v-bind:class=‘[{red:"isred"}]‘></div>-->
20
21 </div>
22
23
24 <script>
25     new Vue({
26         el: "#box",
27         data(){
28             return {
29                 isred:false
30             }
31         }
32     })
33 </script>

v-style  与v-class用法大致一样  这个我就不写了

v-once  与我下边的例子  就是  加载一次  如果用到事件中就是事件只执行一次(@click.once="show"

<div id="box">
    <div v-once>{{msg}}</div>
</div>

<script type="text/javascript">
    new Vue({
        el:"#box",
        data(){
            return{
                msg:"qwdqwdqwd"
            }
        }
    })
</script>

v-cloak防闪烁

<div id="box">
    <div v-cloak="">欢迎--{{msg}}</div>
</div>

<script>
    new Vue({
        el:"#box",
        data(){
            return{
                msg:"111111"
            }
        }
    })
</script>

v-pre  把标签内部的元素原位输出

<div id="box">
    <div v-pre>欢迎--{{msg}}</div>
</div>

<script>
    new Vue({
        el:"#box",
        data(){
            return{
                msg:"111111"
            }
        }
    })
</script>

接下来就是一个总结了

 1 vue 是什么
 2
 3 简介型的javascript框架    个人开发 (刘雨溪)
 4
 5     特点:mvvm       m=mvc   module 模型   v=view 视图    c=controller  控制器
 6          mvvm       m=mvc   module 模型   v=view 视图     vm (视图与数据之间的传递)
 7          vue1 双向数据绑定   vue2 单向数据流
 8          单页面应用
 9
10
11
12
13 v-model   数据绑定
14 data  返回对象用 return
15
16 v-for   循环   格式  v-for="字段名 in(of) 数组json"
17
18 v-show   显示 隐藏     传递的值为布尔值  true  false  默认为false
19
20 v-if   显示与隐藏     和v-show对比的区别 就是是否删除dom节点   默认值为false
21
22 v-else-if  必须和v-if连用
23
24 v-else  必须和v-if连用  不能单独使用  否则报错   模板编译错误
25
26 v-bind  动态绑定  作用: 及时对页面的数据进行更改
27
28
29
30 v-on 绑定事件  函数必须写在methods里面
31 @click  快捷方法
32
33 v-text  解析文本
34
35 v-html   解析html标签
36
37 v-bind:class   三种绑定方法  1、对象型  ‘{red:isred}‘  2、三目型   ‘isred?"red":"blue"‘   3、数组型  ‘[{red:"isred"},{blue:"isblue"}]‘
38
39 v-once  进入页面时  只渲染一次 不在进行渲染
40
41 v-cloak  防止闪烁
42
43 v-pre  把标签内部的元素原位输出
时间: 2024-11-05 12:35:11

vue的指令的相关文章

vue之指令篇 ps简单的对比angular

这两天在开始vue的大型项目,发现和ng还是有许多不同,这里对比下两者的指令系统 难度系数:ng的指令难度大于vue:至少vue上暂时没发现@&=:require,compile,precompile,postcompile之类的小型地雷... 这篇文章只看表象:何为指令?这里借助ng的解释来解释vue,就是当你的项目中,需要一些dom操作,并且MVMM自带的事件指令感觉麻烦的时候,可以把一些dom操作封装到一个公共方法,这就是指令,大概用在vue上也可以说个70%: 写法,vue: Vue.d

vue自定义指令(Directive中的clickoutside.js)的理解

.array p { counter-increment: longen; margin-left: 10px } .array p::before { content: counter(longen) "." } .alink { font-size: 16px; color: blue } 阅读目录 vue自定义指令clickoutside.js的理解 回到顶部 vue自定义指令clickoutside.js的理解 vue自定义指令请看如下博客: vue自定义指令 一般在需要 DO

vue 常用指令

vue常用指令: 1. v-model   一般用在表单元素   input-->  text  ---> v-model='msg' 2. 循环数组: <li v-for="(value,index) in arr"> {{value}}{{index}} </li> 3.循环json: <li v-for="(value,key) in json"> {{value}} {{key}} </li> 事件

vue自定义指令

什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊属性. 它可以写在DOM元素上,对html进行操作.常用的指令比如有:v-if,v-else,v-show,v-for等.这些都是官方直接给定的,另外Vue也允许注册自定义指令,有时这很有用. 自定义指令方法 自定义一个指令很简单,官网给出一个简单的例子,自定义一个聚焦指令v-focus: // 注册一个全局自定义指令 `v-focus` Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中

Vue常用指令

vue中常用v-表示指令,下面总结一下常用的指令有哪些: 插入文本:v-text 相当于元素的innerText属性,必须是双标签 插入HMTL:v-html 相当于元素的innerHTML属性 循环:v-for v-for的使用,除了item属性,还有一些其他辅助属性.假设你现在循环的对象名字为students: 如果students是数组,还有index属性,如v-for="(item,index) in students"; 如果students是对象,还有value,key属性

Vue.js指令

一.学习目标 了解 什么 是 Vue.js 指令 理解 Vue.js 指令的 用途 掌握 Vue.js 指令的书写规范 能够 使用 Vue.js 指令完成部门页面交互效果(难点和重点) 二.指令的基本概念 2.1.什么是Vue.js指令 指令是带有v-前缀的特殊属性:v-bind.v-bind:is.v-bind:key.v-cloak.v-else.v-else-if.v-for.v-html.v-if.v-model 2.2.Vue.js指令的用途 在表达式的值改变时,将某些行为应用到DOM

Vue基础指令

一 Vue框架简介 Vue是一个构建数据驱动的web界面的渐进式框架. 目标是通过尽可能简单的API实现响应式的数据绑定和组合的视图组件 1 <div id="app"> 2 <span>你的名字是{{name}}</span> 3 </div> 4 var app=new Vue({ 5 el: '#app', 6 data:{ 7 name:'wdb' 8 } 9 }) 二 Vue指令 Vue的指令directives很像我们所说的自

VUE 初学指令篇

Vue是什么? vue是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动. vue简单的来理解就是一个前端的框架.将每个功能都封装成很多个模块,需要什么功能就引用什么模块. Vue的指令: 准备工作,引入vue.js,创建Vue对象. <!DOCTYPE html> <

vue自定义指令clickoutside使用以及扩展用法

vue自定义指令clickoutside使用以及扩展用法 产品使用vue+element作为前端框架.在功能开发过程中,难免遇到使用element的组件没办法满足特殊的业务需要,需要对其进行定制,例如要求选择器的弹出框中,增加搜索过滤(跟目前element的输入建议不太一样).于是想说说之前修改element组件,并定制为业务组件过程中遇到的问题. ps:因为对某些组件改动很大,所以是直接拷贝了一份源码,然后再进行修改,但是这样会遇到挺多问题,建议对于vue组件如果改动不大,只是简单功能扩展,就