一、实例中的成员

二、高级指令

三、组件初识

一、实例中的成员

# 计算computed

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computed</title>
</head>
<body>
<div id="app">
姓<input type="text" v-model="first_name">
<hr>
名<input type="text" v-model="last_name">
<hr>
<p>{{ first_name + " " + last_name }}</p>
<p>{{ full_name_fn() }}</p>
<!-- 一个变量的值依赖于多个变量的值 -->
<p>{{ full_name }}</p>
</div>
</body>
<script src="js/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
first_name: "",
last_name: "",
},
methods: {
// 声明的是函数, 该函数必须手动调用
full_name_fn: function () {
return this.first_name + " " + this.last_name
}
},
computed: {
// 声明变量full_name, 该变量的值等于后方函数的返回值
// 函数中包含的所有vue变量值只要有发生变化的系统就会调用该函数
full_name: function () {
return this.first_name + " " + this.last_name
}
}
})
</script> </html>

# watch监听

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computed</title>
</head>
<body>
<div id="app">
姓名<input type="text" v-model="full_name">
<hr>
<p>{{ first_name }}</p>
<hr>
<p>{{ last_name }}</p>
</div>
</body>
<script src="js/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
full_name:"",
first_name:"",
last_name:"",
},
watch:{
// watch只是对已有的变量进行值变化的监听,一旦发现值变化,系统自动回调监听变量后的函数
// 后方函数和前方变量只有数据变化的监听绑定关系,没有值相关的联系
full_name: function () {
arr = this.full_name.split(" ");
this.first_name = arr[0];
this.last_name = arr[1];
}
} })
</script> </html>

二、高级指令

# 条件指令渲染

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computed</title>
<style>
.wrap{
width: 300px;
}
.box{
width: 100px;
height: 100px;
} .red{
background-color: red;
float: left;
} .orange{
background-color: orange;
float:right;
}
</style>
</head>
<body>
<div id="app">
<button @click="rAction">red切换</button>
<button @click="oAction">orange切换</button>
<div class="wrap">
<!--v-if 值为false时,不会被渲染-->
<!--了解:key由vue控制的属性key值需要唯一标识,因为key的值就是vue对该组件对内在中建立缓存的可以-->
<div class="box red" v-if="r_show" :key="key"></div>
<!--v-show 值为false时,以display:none被渲染-->
<div class="box orange" v-show="o_show"></div>
</div>
</div>
</body>
<script src="js/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
r_show:true,
o_show:true,
}, methods:{
rAction:function () {
this.r_show = !this.r_show
},
oAction:function () {
this.o_show = !this.o_show
}
}
})
</script> </html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computed</title>
<style>
.box{
height:100px;
}
.r{background-color: red}
.y{background-color: yellow}
.b{background-color: blue} </style>
</head>
<body>
<div id="app">
<ul>
<li @click="rfn">红</li>
<li @click="yfn">黄</li>
<li @click="bfn">蓝</li>
</ul>
<div class="box r" v-if="tag==0" ></div>
<div class="box y" v-else-if="tag==1"></div>
<div class="box b" v-else></div>
</div>
</body>
<script src="js/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
tag:0
}, methods:{
rfn:function () {
this.tag = 0
},
yfn:function () {
this.tag = 1
},
bfn:function () {
this.tag = 2
},
}
})
</script> </html>

条件指令案例

#循环指令渲染

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computed</title>
</head>
<body>
<div id="app">
<ul>
<li>{{ ls[0] }}</li>
<li>{{ ls[1] }}</li>
<li>{{ ls[2] }}</li>
<li>{{ ls[3] }}</li>
<li>{{ ls[4] }}</li>
</ul>
<ul>
<li v-for="(ele,index) in ls">{{ ele }} {{ index }}</li>
</ul>
<ul>
<li v-for="(value,key,index) in dic">{{ key }} {{ value }} {{ index }}</li>
</ul>
</div>
</body>
<script src="js/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
ls: ['张三', '李四', '王五', '赵六', '钱七'],
dic:{
name:'Richard.wu',
age:31,
gender:'man'
}
}, })
</script> </html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computed</title>
</head>
<body>
<div id="app">
<form action="">
<input type="text" v-model="msg">
<button type="button" @click="fn">留言</button>
</form>
<ul>
<li v-for="(m,i) in msgs" @click="deleteAction(i)">{{ m }}</li>
</ul>
</div>
</body>
<script src="js/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
msg:"",
msgs:["初始留言"]
},
methods:{
fn:function(){
if(this.msg){
// this.msgs.push(this.msg)//在后添加
this.msgs.unshift(this.msg);//在前添加
this.msg="";
}
},
deleteAction:function(index){
console.log(index);
// 从什么索引开始,操作多少位,操作什么
this.msgs.splice(index,1)
}
} })
</script> </html>

循环指令渲染案例

三、组件初识

# 组件初识

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computed</title>
</head>
<body>
<div id="app">
{{ msg }}
</div>
</body>
<script src="js/vue.js"></script>
<script>
//每个组件均有自身的模板tempalate,根组件的模板就是挂载点
new Vue({
//根组件一定需要挂载点(否则无法渲染到页面中),一般情况下,根组件template就取挂载点,不需要自定义
el: "#app",
data: {
msg:"信息"
},
//template就是组件的html架构
//每个组件模板只能拥有一个根标签
template:"<div><p>中午请客,师妹告诉我今晚不回去还想给我三个耳光,我当时就拒绝了,休想坑我第二顿</p></div>"
})
</script> </html>

# 局部组件

<body>
<div id="app">
<abc></abc>
<abc></abc>
<abc></abc>
</div>
<hr>
<div id="main">
<local-tag></local-tag>
<local-tag></local-tag>
</div>
</body>
<script src="js/vue.js"></script>
<script>
// 局部组件
var localTag = {
// 子组件的数据具有作用域,以达到组件的复用, 每一个复用的组件具有自身独立的一套数据
data: function () {
return { // 返回值是一个数据字典(一套数据)
count: 0
}
},
template: "<div @click='fn'>点击{{ count }}次</div>",
methods: {
fn: function () {
this.count += 1;
}
}
} // app根组件
new Vue({
el: "#app",
// 注册
components: {
'abc': localTag
}
})
// main根组件
new Vue({
el: "#main",
components: {
// localTag
'local-tag': localTag
}
})
</script>

Vue介绍:vue导读2的更多相关文章

  1. Vue.js是什么,vue介绍

    Vue.js是什么,vue介绍 Vue.js 是什么Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用. ...

  2. Vue介绍:vue导读1

    一.什么是vue 二.如何在页面中使用vue 三.vue的挂载点 四.vue的基础指令 一.什么是vue 1.什么是vue vue.js十一个渐进式javascript框架 渐进式:vue从控制页面中 ...

  3. Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖

    1 Vue介绍 1.1 官方介绍 vue是一个简单小巧的渐进式的技术栈,它提供了Web开发中常用的高级功能:视图和数据的解耦.组件的服用.路由.状态管理.虚拟DOM 说明:简单小巧 -> 压缩后 ...

  4. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  5. Vue学习笔记之Vue介绍

    vue的作者叫尤雨溪,中国人.自认为很牛逼的人物,也是我的崇拜之神. 关于他本人的认知,希望大家读一下这篇关于他的文章,或许你会对语言,技术,产生浓厚的兴趣.https://mp.weixin.qq. ...

  6. vue——介绍和使用

    一.vue介绍 vue官网说:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式的JavaScript框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. ...

  7. Vue介绍以及模板语法-插值

    1.Vue的介绍 Vue是一套用于构建用户界面的渐进式框架. 注意:Vue是一个框架,相对于jq库来说,是由本质的区别的:https://cn.vuejs.org/ Vue不支持IE8及一下版本,因为 ...

  8. Vue小白篇 - Vue介绍

    Vue ?啥是Vue?能干嘛? vue 的介绍 Vue 是一套用于构建用户界面的 渐进式框架 ,与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 前端三大框 ...

  9. vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)

    第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法) #课程目标 了解 vue 框架的特点 掌握创建 vue 实例 掌握 data ...

  10. 【Vue】Vue框架常用知识点 Vue的模板语法、计算属性与侦听器、条件渲染、列表渲染、Class与Style绑定介绍与基本的用法

    Vue框架常用知识点 文章目录 Vue框架常用知识点 知识点解释 第一个vue应用 模板语法 计算属性与侦听器 条件渲染.列表渲染.Class与Style绑定 知识点解释 vue框架知识体系 [1]基 ...

随机推荐

  1. stm32第一章cortex-M3处理器概述

    处理器特点 哈弗结构3级流水线内核 实现Thumb-2指令集,告别切换32位的arm指令和16位的Thumb指令,优化性能和代码密度 结合可配置的嵌套向量中段控制器Nvic,提供非屏蔽中断NMI和32 ...

  2. Flutter 实现简单搜索功能

    先建立一个主文件,继承StatelessWidget,然后在home属性中加入SearchBarDemo,这是一个自定义的Widget,主要代码都在这个文件中. import 'package:flu ...

  3. 源码分析之AsyncTask

    AsyncTask在Android中是很常用的异步线程,那么AsyncTask和Thread有什么区别呢?这里将从源码角度深入理解AsyncTask的设计和工作原理,这里的AsyncTask基于SDK ...

  4. 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱

    题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...

  5. Netty学习篇②

    Channel.ChannelPipeline.ChannelHandlerContent发送数据的不同 // channel往回写数据 Channel channel = ctx.channel() ...

  6. java中讲讲DataInputStream的用法,举例?

    [学习笔记] 2.4 DataInputStream的用法 马 克-to-win:DataInputStream顾名思义:就是专门用来读各种各样的数据的,比如(int,char,long等),一定要注 ...

  7. Redis 原子操作——事务

    MULTI 标记一个事务块的开始. 事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行. 可用版本: >= 1.2.0 时间复杂度: O(1) ...

  8. 网站页面顶部出现空白行&#65279字符的原因以及完美解决办法

    转自个人博客:https://www.hurbai.com 有时候网页头部会出现一个空白行,查看源码发现body开头初有一个非法字符 // 如果是Windows系统,修改为:$WIN = 1; $W ...

  9. python 基础(十五)--time和datatime模块

    time模块 time.time():返回当前时间,时间戳 time.clock():返回cpu时间(?),当有time.sleep()时,time.clock()不计时 time.localtime ...

  10. WPF入门(1)——DataContext

    在WPF中,应用程序有两层:UI层和Data层.这里新建一个项目说明哪些是UI层,哪些是数据层. UI层很明显,就是用户看到的界面.但是数据层并不是下图所示: 上图中是UI层view的后台代码.当然, ...