cgb2110-day12
Posted cgblpx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cgb2110-day12相关的知识,希望对你有一定的参考价值。
文章目录
一,练习 Vue
–1,测试
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 vue基础语法的综合案例</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<table border="1px" bgcolor="pink" cellspacing="0" width="200px">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>persons[0].id</td>
<td>persons[0].name</td>
<td>persons[0].age</td>
</tr>
<tr>
<td>persons[1].id</td>
<td>persons[1].name</td>
<td>persons[1].age</td>
</tr>
</table>
</div>
<script>
new Vue(
el:"#app",//挂载点
data() //data函数的写法
return //通过return返回函数准备好的数据
//对象名:对象声明
persons:[
id:100,
name:"tony",
age:20
,
id:200,
name:"rose",
age:10
]
)
</script>
</body>
</html>
二,Vue指令
–1,概述
是一些特殊的命令, 都是vue提供的, 并且有标识:v-*
使用方式: 在标签上,当做一个属性来用
常见的指令: v-model v-if v-for v-bind v-on…
–2,v-model & v-html & v-cloak
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 vue指令</title>
<script src="vue.js"></script>
<!-- 3.v-cloak指令:用来解决闪现的问题,
给数据渲染区添加v-cloak,选中有v-cloak属性的元素,然后隐藏
-->
<style>
[v-cloak]
display: none;//隐藏
</style>
</head>
<body>
<div id="app" v-cloak>
<h1>msg</h1>
<h1>msg</h1>
<h1>msg</h1>
<h1>msg</h1>
<!-- 1.v-model指令:实现了双向绑定/数据驱动 ,值是属性名 -->
<input type="text" v-model="msg"/>
<!-- 2.v-text/v-html指令:用来获取属性的值,后者可以解析HTML标签,值是属性名 -->
<div>name</div>
<div v-text="name"></div>
<div v-html="name"></div>
</div>
<script>
new Vue(
el:"#app",
data()
return
msg : 'hello vue~',
name:'<h1>jack</h1>'
)
</script>
</body>
</html>
–3,v-if & v-show
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 vue的指令</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<!-- 1.v-if指令:用来完成判断,判断条件满足就展示,不满足不展示 -->
<p v-if="age >= 18">成年人</p>
<p v-if="age < 18">未成年人</p>
<!-- 2.v-show 和 v-if的区别??
判断条件满足就展示,不满足判断条件的元素 不会展示,
v-show会加载没有满足条件的元素,背后使用css的样式,让元素隐藏了.style="display: none;"
v-if根本就不会加载没有满足条件的元素
-->
<p v-show="age < 18">未成年人</p>
<!-- 3. v-if / v-else-if / v-else 指令:类似于java里的嵌套分支 -->
<p v-if="salary >= 1000000">金领</p>
<p v-else-if="salary >= 500000">白领</p>
<p v-else-if="salary >= 5000">蓝领</p>
<p v-else>屌丝</p>
</div>
<script>
new Vue(
el:"#app",
data()
return
age : 20,
salary : 2000
)
</script>
</body>
</html>
–4,v-for & v-on
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 vue的指令</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<!-- 1.v-for指令:循环获取数据,
o in hobby其中o是数据,hobby是data里的数组名称
i是下标
-->
<p v-for="o,i in hobby">数据:o - 下标:i</p>
<ol>
<li v-for="o in hobby">o</li>
</ol>
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<!-- v-for加在行上,就是会循环产生多行.
person in persons 其中,persons是数组名,person是数组里的数据
-->
<tr v-for="person in persons">
<!-- 获取person对象的name属性的值并展示 -->
<th v-html="person.name"></th>
<!--person.age获取person对象的age属性的值 -->
<th>person.age</th>
</tr>
</table>
<!-- 2.v-on指令:用来给元素添加vue的事件,
v-on:可以简写成一个@
click是单击,dblclick是双击
-->
<button v-on:click="show()">单击按钮</button>
<button v-on:dblclick="test()" >双击按钮</button>
<button @dblclick="test()" >双击按钮</button>
<!-- 点赞按钮,点一次就加1 -->
<button @click="sum()">点赞count</button>
</div>
<script>
new Vue(
el:"#app",
data()
return
hobby:["篮球","足球"],
persons:[
name:"jack",age:20,
name:"rose",age:30
],
count:0 //记录点赞的次数
,
methods:
show()
alert(100);
,
test()
alert(200);
,
sum() //计算点赞的次数
this.count++; //修改count变量的值,自增的过程
)
</script>
</body>
</html>
–5,v-bind
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 vue的指令</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<a href="url">百度一下</a>
<!-- 1.v-bind指令: 把后面的值当变量来解析,获取变量的值,也可以简写 -->
<a v-bind:href="url">百度一下</a>
<a :href="url">百度一下</a> <!-- 同上,是简写形式-->
</div>
<script>
new Vue(
el:"#app",
data()
return
url:'http://www.baidu.com'
)
</script>
</body>
</html>
三,Vue组件
–1,概述
是Vue框架提供的一个功能, 扩展了HTML的标签.
使用: 像使用HTML标签一样,直接使用Vue组件就可以了.
好处: 提高了前端代码的复用性
分类:
1,全局组件 – Vue.component(组件名,组件的功能)
2,局部组件 – 给Vue对象添加新的属性components
–2,全局组件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 Vue组件component</title>
<script src="vue.js"></script>
</head>
<body>
<!-- 组件: 封装了前端的代码,提高了代码的复用性.
将来由各种小组件组成大网页
开发步骤: 创建组件(全局/局部) + 使用组件(像标签一样的用)
-->
<div id="app">
<!-- 2.使用组件 -->
<hello></hello>
</div>
<script>
//1.创建 全局组件
//组件名,组件功能(key是固定值template,value是组件的功能)
//vue对象的常用属性:::: el:挂载点, data:数据,methods:函数
Vue.component('hello',
template:'<h1>你好</h1>'
)
new Vue(
el:"#app"
)
</script>
</body>
</html>
–3,局部组件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 Vue局部组件component</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<start></start>
</div>
<div id="a">
<!-- 2.使用局部组件:只能在指定的vue对象指定的数据渲染区来使用 -->
<start></start>
</div>
<script>
new Vue(
el:"#a"
)
//1.创建局部组件
new Vue(
el:"#app",
components:
//组件名:组件内容
start :
template:'<a href="https://www.baidu.com/">百度一下</a>'
)
</script>
</body>
</html>
–4,对比
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>对比 全局组件 和 局部组件</title>
<script src="vue.js"></script>
</head>
<body>
<div id="a">
<testa></testa>
<testb></testb>
以上是关于cgb2110-day12的主要内容,如果未能解决你的问题,请参考以下文章