DAY66-前端入门-javascript(十二) vue02

一.文本操作指令

采用文本指令后,页面标签的内容由vue实例来控制。

1.v-text

<!-- 原文本会被msg替换 -->
<p v-text=‘msg‘></p>

2.v-html

<!-- 可以解析带html标签的文本信息 -->
<p v-html=‘msg‘></p>

3.v-once

<!-- v-once只能被赋值一次 -->
<p v-once>{{ msg }}</p>

4.v-model

<!-- v_model vue进行数据双向绑定的指令 -->
<input type="text" v-model=‘msg‘name="">
<p v-text=‘msg‘></p>

5.v-cloak

  • 解决页面闪烁
<!-- 方式一 -->
<style>
    [v-cloak]{
        display: none;
    }
</style>
<body>
    <div id="app" v-cloak>
        {{ msg }}
    </div>
</body>
<script src="js/vue-2.5.17.js"></script>
<script>
    new Vue({
        el:‘#app‘,
        data:{
            msg:‘message‘
        }
    })
</script>

<!-- 方式二 -->
<head>
    <script src="js/vue-2.5.17.js"></script>
</head>
<body>
    <div id="app">
        {{ msg }}
    </div>
</body>
<script>
    new Vue({
        el:‘#app‘,
        data:{
            msg:‘message‘
        }
    })
</script>

二.关键指令

1.v-bind

<!-- 该指令绑定的是HTML标签的全局属性,绑定获得属性值可以由变量决定 -->
<!-- 自定义全局属性abc的属性值是变量abc -->
<p v-bind:abc=‘abc‘ ></p>

<!-- 操作单一变量 -->
<p v-bind:title=‘t1‘>p1p1p1p1p1p1p1</p>

<!-- 操作普通字符串 -->
<p v-bind:title=‘"t2"‘>p2p2p2p2p2p2p2</p>

<!-- 操作类名 -->
<!-- 操作单一类名 -->
<p v-bind:class=‘t3‘>p3p3p3p3p3p3p3</p>

<!-- 操作多个类名[] -->
<p v-bind:class=‘[t4,tt4]‘>p4p4p4p4p4p4p4</p>

<!-- 操作类名的显隐 -->
<!-- {}语法:{key:value}  -->
<!-- key:实际类名   value(类名的显隐): true | false -->
<p v-bind:class=‘{abc:t5}‘ v-on:click=‘fn‘>p5p5p5p5p5p5p5</p>

<!-- []、{} 的结合使用 -->
<p v-bind:class=‘[{p6:t6},{pp6:tt6}]‘>p6p6p6p6p6p6p6</p>

<!-- v-bind:  简写成 : -->
<!-- 操作Style -->
<div :style=‘div_style‘></div>

<!-- 以上操作相对应的vue -->
<script>
    new Vue({
        el:‘#app‘,
        data:{
            abc:‘ABC‘,

            t1:‘p1~title‘,

            t3:‘p pp‘,

            t4:‘p‘,
            tt4:‘pp‘,

            t5:true,

            t6:true,
            tt6:true,

            div_style:{
                backgroundColor:‘cyan‘,
                width:‘200px‘,
                height:‘200px‘
            }
        },
        methods:{
            fn(){
                this.t5 = !this.t5
            }
        }
    })
</script>

2.v-on指令

1.简写 v-on:click <=> @click
2.默认绑定 @click="fn" => 回调方法可以获取ev
3.带参绑定 @click="fn(10)" => 回调参数只能获取自定义参数10
4.带参绑定 @click="fn(10, $event)" => 回调参数可以获取自定义参数10即事件参数ev
<div id="app">
    <p @click="fn1"></p>
    <p @click="fn2"></p>
    <p @click="fn3(10)"></p>
    <p @click="fn4($event, 10, 20)"></p>
    <p @click="fn5(10, $event, 20)"></p>
</div>
<script type="text/javascript">
    new Vue({
        el: "#app",
        methods: {
            fn1: function () {
                console.log("click event");
            },
            fn2 (ev) {
                console.log(ev);
            },
            fn3 (num) {
                console.log(num);
            },
            fn4 (ev, n1, n2) {
                console.log(ev);
                console.log(n1);
                console.log(n2);
            },
            fn5 (n1, ev, n2) {
                console.log(ev);
            }
        }
    })
</script>

3.v-model指令

  • 操作的是表单元素的value值
<!-- 数据的双向绑定 -->
<!-- 两个输入框绑定的是同一个val,那么其中一个input的内容改变会直接映射到另一个input上。-->
<!-- v-model绑定的是value,可以省略 -->
<input type="text" v-model="val1" name="usr">
<textarea v-model="val1"></textarea>
<p v-text="val1"></p>
<!-- 单一复选框 -->
<!-- val2值为true|false的变量,控制单选框是否被选中 -->
<input type="checkbox" v-model="val2" name="ck1">

<!-- val3值为自定义"选中"|"未选中",控制单选框是否被选中 -->
<!-- 选中状态,提交给后台可以对应的value为on,为选中状态,不向后台提交value值 -->
<input type="checkbox" v-model=‘val3‘ true-value="选中" false-value="未选中" name="ck2" />
<!-- 多复选框 -->
<!-- 多个复选框的v-model绑定一个变量 -->
<!-- 该变量为数组数据,存放的是复选框的value值(value值必须明确) -->
<!-- 出现在数组中的value值对应的复选框默认为选中状态 -->
<!-- 提交给后台数据: ck=ppqiu&ck=zqiu -->
篮球<input type="checkbox" value="lqiu" v-model="val" name="ck">
足球<input type="checkbox" value="zqiu" v-model="val" name="ck">
乒乓球<input type="checkbox" value="ppqiu" v-model="val" name="ck">
<!-- 多单选框 -->
<!-- 多个单选框的v-model绑定一个变量 -->
<!-- 变量值为多个单选框中一个的value值,则该单选框为默认选中状态 那么该单选框默认选中 eg: val: famale => 女单选框默认选中-->
<!-- 提交给后台数据: sex=famale-->
男:<input type="radio" value="male" v-model="val" name="sex">
女:<input type="radio" value="famale" v-model="val" name="sex">

三.条件渲染指令

  • v-show
<div v-show="isShow"></div>

<!-- 变量isShow值为true(显示,display: block)|false(隐藏,display: none) ->
  • v-if
<div v-if="isShow"></div>

<!-- 变量isShow值为true(显示,渲染到页面)|false(隐藏,不渲染到页面) -->
  • v-if v-else-if v-else
<div v-if="tag == 0" key="0"></div>
<div v-else-if="tag == 1" key="1"></div>
<div v-else="tag == 2" key="2"></div> 

<!-- v-else逻辑可言省略 -->
<!-- 变量tag取值在0~2之间,可以决定具体渲染那个div -->
<!-- 通过key全局属性操作后,渲染过的分支会建立key对应的缓存,提高下一次渲染速度 -->

四.列表渲染指令

  • v-for 遍历数组[]
<ul>
    <li v-for="(n, i) in list" :key="i">value:{{ n }} | index: {{ i }}</li>
</ul>
<!-- list为提供的数组数据  -->
<!-- n为遍历的数组元素值,i为遍历的元素索引  -->
<!-- 一般列表渲染需要建立缓存 -->
<!-- key是为遍历建立缓存,采用变量赋值,所以通过v-bind:指令操作  -->
<script>
new Vue({
    el: "#app",
    data: {
        list: [1, 2, 3, 4, 5],
    }
})
</script>
  • v-for变量对象{}
<ul>
    <li v-for="(v, k, i) in dic" :key="k">value:{{ v }} | key:{{ k }} | index: {{ i }}</li>
</ul>
<!-- dic为提供的对象(字典)数据 -->
<!-- v为遍历的对象值,k为对象值的键,i为对象值的索引 -->
<!-- key是为遍历建立缓存,采用变量赋值,所以通过v-bind:指令操作 -->
<script>
new Vue({
    el: "#app",
    data: {
        dic: {
            name: ‘张三‘,
            age: 18,
            gender: ‘男‘
        }
    }
})
</script>
  • 遍历的嵌套
<div v-for="(person, index) in persons" :key="index" style="height: 21px;">
    <div v-for="(v, k) in person" :key="k" style="float: left;">{{ k }} : {{ v }}&nbsp;&nbsp;&nbsp;</div>
</div>

<script>
new Vue({
    el: "#app",
    data: {
        persons: [
            {name: "zero", age: 8},
            {name: "egon", age: 78},
            {name: "liuXX", age: 77},
            {name: "yXX", age: 38}
        ]
    }
})
</script>

今日所学实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <div>
            <input type="text" v-model=‘val‘>
            <button type="button" @click=‘submitMsg‘>提交</button>
        </div>
        <ul>
            <li v-for=‘(v,i) in list‘ :key=‘i‘ @click=‘removeMsg(i)‘>{{v}}</li>
        </ul>
    </div>
</body>
<script src="js/vue-2.5.17.js"></script>
<script>
    new Vue({
        el:‘#app‘,
        data:{
            val:‘‘,
            list:[]
        },
        methods:{
            submitMsg(){
                // 往list中添加input框中的value
                if (this.val){
                    this.list.push(this.val);
                    this.val = ‘‘
                }
            },
            removeMsg(index){
                this.list.splice(index,1)
            }
        }
    })
</script>
</html>

原文地址:https://www.cnblogs.com/xvchengqi/p/9873009.html

时间: 2024-10-12 04:21:31

DAY66-前端入门-javascript(十二) vue02的相关文章

【Git入门之十二】DIY Git

[Git入门之十二]DIY Git - JackyStudio - 博客频道 - CSDN.NET Git的配置是很有学问的,如果弄懂它,将对你帮助很大. 1.用户配置 这是全局的. ? [cpp]?view plaincopy ? #设置用户名?? $Snbsp;git?config?--global?user.name?"Jacky"?? ?? #设置邮箱?? $Snbsp;[email protected]?? ? 2.设置默认编辑器 在需要输入文本信息时调用,比如之前的reba

Swift入门(十二)——利用Extension添加逆序输出字符串方法

Swift好像没有自带逆序输出字符串的方法,于是决定通过拓展(Extension)给String类添加一个逆序输出字符串的reverse方法. 首先新建一个Swift文件,命名规则不太清楚,于是暂且模仿OC叫做String+Operation吧,然后实现我们需要拓展的方法.下面先贴上代码,然后解释一下这段代码. //String+Operation.swifft import Foundation //逆序输出swift中的字符串 extension String{ func Reverse()

UWP入门(十二)--数据绑定用法

原文:UWP入门(十二)--数据绑定用法 主要几个元素: Template DataTemplate ItemSource 数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo是这样的: 有许多书的集合,书 类中有图片.标题.作者和ID,把它成现在GridView 控件上,每次点击GridView 的时候动态显示书本信息 github 代码 效果图: 原理图: 1. Template 为GridView 创建一个Template,决定每个独立的图书对象如何呈现在屏幕上 <

Project Server 2013新手入门 (十二)特定工作组

很多时候我们需要那种分层次的组织结构来个部门分配任务,然后部门领导再给员工分配任务,这里就用到了了一个功能特定工作组.而创建一个全新的工作组的话,就要用到查阅表格. 1.新建查阅表格 1)在PWA中,选择"服务器设置",在"企业数据"下,选择"企业自定义域和查阅表格". 2)在"企业自定义域和查阅表格"页面,选择"自定义域的查阅表格"(如果企业自定义域比较多可能得向下翻阅滚动条才能找到) 3)在出现的页面中

(转)Inno Setup入门(十二)——Pascal脚本(1)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250917 事件函数(1) Inno Setup支持以下函数和过程. function InitializeSetup(): Boolean; 该函数在安装程序初始化时调用,返回False 将中断安装,True则继续安装,测试代码如下: function InitializeSetup(): Boolean; begin Result := MsgBox('安装程

Python3快速入门(十二)——NumPy

Python3快速入门(十二)--NumPy 一.NumPy简介 1.NumPy简介 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库.Numpy 是一个运行速度非常快的数学库,内部解除了CPython的GIL(全局解释器锁),运行效率极好,主要用于数组计算,是大量机器学习框架的基础库,NumPy主要包括如下:(1)强大的N维数组对象 ndarray(2)广播功能函数(3)整合 C/C++/

前端学习(十二):CSS排版

进击のpython 前端学习--CSS排版 本节主要介绍网页排版中主要格式化元素属性 帮助开发者把css技术与网页排版紧密联系到一起,来更好的实现网页设计效果 字体属性 字体 在日常工作中,我们会用到word来编写内容,比如可以对我们需要设置的内容设置字体.字号.颜色等设置 那么我们在网页中使用css样式时,同样也能做相关的设置 那我们可以试着为网页中的文字设置字体为微软雅黑 body{font-family:'微软雅黑'} 这里要注意不要设置不常用的字体,比如你给我来个'菲律宾体' 因为如果用

前端之JavaScript(二)

一.概述 本篇主要介绍JavaScript的BOM和DOM操作,在前端之JavaScript(一)中介绍了JavaScript基础知识 1.1.BOM和DOM BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”. DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素. Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的

从头开始学JavaScript (十二)——Array类型

一.数组的创建 注:ECMAscript数组的每一项都可以保存任何类型的数据 1.1Array构造函数 var colors = new Array(); 如果预先知道数组要保存的项目数量,也可以给构造函数传递该数量: var colors = new Array(20); 也可以向构造函数传递数组中应该包含的项: var colors = new Array("red", "blue", "green"); 给构造函数传递一个值也可以创建数组:

(转载)VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架)

上一节中鸡啄米讲了GDI对象之画刷CBrush,至此图形图像的入门知识就讲完了.从本节开始鸡啄米将为大家带来Ribbon界面开发的有关内容.本文先来说说如何创建Ribbon样式的应用程序框架. Ribbon界面就是微软从Office2007开始引入的一种为了使应用程序的功能更加易于发现和使用.减少了点击鼠标的次数的新型界面,从实际效果来看,不仅外观漂亮,而且功能直观,用户操作简洁方便. 鸡啄米将以图文结合的方式来说明利用MFC向导创建Ribbon样式的单文档应用程序框架的过程,其实Ribbon应