Vue介绍:vue导读2
一、实例中的成员
二、高级指令
三、组件初识
一、实例中的成员
# 计算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的更多相关文章
- Vue.js是什么,vue介绍
Vue.js是什么,vue介绍 Vue.js 是什么Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用. ...
- Vue介绍:vue导读1
一.什么是vue 二.如何在页面中使用vue 三.vue的挂载点 四.vue的基础指令 一.什么是vue 1.什么是vue vue.js十一个渐进式javascript框架 渐进式:vue从控制页面中 ...
- Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖
1 Vue介绍 1.1 官方介绍 vue是一个简单小巧的渐进式的技术栈,它提供了Web开发中常用的高级功能:视图和数据的解耦.组件的服用.路由.状态管理.虚拟DOM 说明:简单小巧 -> 压缩后 ...
- vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍
这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...
- Vue学习笔记之Vue介绍
vue的作者叫尤雨溪,中国人.自认为很牛逼的人物,也是我的崇拜之神. 关于他本人的认知,希望大家读一下这篇关于他的文章,或许你会对语言,技术,产生浓厚的兴趣.https://mp.weixin.qq. ...
- vue——介绍和使用
一.vue介绍 vue官网说:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式的JavaScript框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. ...
- Vue介绍以及模板语法-插值
1.Vue的介绍 Vue是一套用于构建用户界面的渐进式框架. 注意:Vue是一个框架,相对于jq库来说,是由本质的区别的:https://cn.vuejs.org/ Vue不支持IE8及一下版本,因为 ...
- Vue小白篇 - Vue介绍
Vue ?啥是Vue?能干嘛? vue 的介绍 Vue 是一套用于构建用户界面的 渐进式框架 ,与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 前端三大框 ...
- vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)
第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法) #课程目标 了解 vue 框架的特点 掌握创建 vue 实例 掌握 data ...
- 【Vue】Vue框架常用知识点 Vue的模板语法、计算属性与侦听器、条件渲染、列表渲染、Class与Style绑定介绍与基本的用法
Vue框架常用知识点 文章目录 Vue框架常用知识点 知识点解释 第一个vue应用 模板语法 计算属性与侦听器 条件渲染.列表渲染.Class与Style绑定 知识点解释 vue框架知识体系 [1]基 ...
随机推荐
- mac Access denied for user 'root'@'localhost' (using password: YES)
1:苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 2: Start it in safe mode 进入终端 输入: cd /usr/local/mysql ...
- JKD1.8新特性
1.Optional类 Optional是jdk1.8引入的类型,Optional是一个容器对象,它包括了我们需要的对象,使用isPresent方法判断所包 含对象是否为空,isPresent方法返回 ...
- WePay-T
(需先申请微信支付商户账号) 在微信支付中绑定appid,公众号和小程序都一样 微信支付中如下: 微信公众平台如下(公众号与小程序一样): 微擎配置微信支付 appid.appsecret为公众号中对 ...
- 使用FRP配置Windows远程控制
一款很好用的内网穿透工具--FRP 前言 使用内网穿透工具--FRP,以及一台云服务器当做服务端,进行简单配置后即可远程访问 配置 FRP 服务端的前提条件是需要一台具有公网 IP 的设备,得益于 F ...
- Grep---linux系统三剑客(一)
grep .sed.awk被称为linux中的"三剑客". grep 更适合单纯的查找或匹配文本 sed 更适合编辑匹配到的文本 awk 更适合格式化文本,对文本进行较复杂格式 ...
- Python学习笔记——pickle 模块
由于从文本文件中读取出来的内容都会变成字符串,且转换成列表.字典等数据类型比较困难,因此采用pickle模块存储它们 import pickle my_list = [123,3.14,'小甲鱼',[ ...
- linux中高级信号函数sigaction和sigqueue实例
/************************************************************************* > File Name: sigquque. ...
- python基础关键词触发的魔法方法
with: __enter__ __exit__ dic={} 获取容器中指定元素的行为 dic["name"] = "egon" #设置值 __setitem ...
- 洛谷P3381 最小费用最大流模板
https://www.luogu.org/problem/P3381 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用 ...
- Design Excel Sum Formula
Your task is to design the basic function of Excel and implement the function of sum formula. Specif ...