Vue进阶学习
Vue进阶学组件
1.组件的学习:
首先想要使用vue的组件 那么需要引入一个支持vue的jsp文件
<script src="node_modules/vue/dist/vue.js">
1.model指令的学习
model指令的意思:用于双向绑定且只能用到表单元素当中
试列代码:
<head>
<meta charset="UTF-8">
<title>model指令</title>
<script src="node_modules/vue/dist/vue.js">
</script>
</head>
<body>
<!--model双向绑定-->
<div id="app">
佛曰:<input type="text" v-model="username"/>{{username}}<br>
城市 <br> <input type="checkbox" value="1" v-model="taty"/>成都
<input type="checkbox" value="2" v-model="taty"/>绵阳
<input type="checkbox" value="3" v-model="taty"/>江油<br>{{taty}}<br>
性别:{{sex}}<br> <input type="radio" value="1" v-model="sex"/>男
<input type="radio" value="2" v-model="sex"/>女<br>
爱好:<select v-model="aihao">
<option value="1">吃饭</option>
<option value="2">睡觉</option>
<option value="3">打豆豆</option>
</select>{{aihao}}<br>
来自外星球的奥特曼:<br><textarea v-model="introval">
</textarea>{{introval}}
</div>
<script>
new Vue({
el:"#app",
data:{
username:"罗将是瓜皮",
taty:[],
sex:2,
aihao:1,
introval:"我是奥特曼,我来打怪兽"
}
})
</script>
</body>
</html>
2.show指令
show指令的意思:改变一个元素是否显示隐藏
试列代码:
<head>
<meta charset="UTF-8">
<title>show指令</title>
<script src="node_modules/vue/dist/vue.js">
</script>
</head>
<body>
<inpuqt type="button" value="点一点" onclick="hh()"/>
<div id="app" v-show="show">
<img src="img/1.jpg" width="1000px" height="500px" >
</div>
<script>
let j=new Vue({
el:"#app",
data:{
show:false
},method:{
}
})
function hh() {
j.show =! j.show
}
</script>
</body>
</html>
3.if指令
if指令的含义:表示判断 如果成立就展示该属性
试列代码:
<head>
<meta charset="UTF-8">
<title>if指令</title>
<script src="node_modules/vue/dist/vue.js">
</script>
</head>
<body>
<div id="app" >
<div v-if="age<22">还不能结婚</div>
<div v-else-if="age>22 && age<80">太老了 就别想了</div>
<div v-else="age>80">天人</div>
</div>
<script>
new Vue({
el:"#app",
data:{
age:20
}
})
</script>
</body>
</html>
4.for指令和if判定的一个综合使用:
<head>
<meta charset="UTF-8">
<title>练习</title>
<script src="node_modules/vue/dist/vue.js">
</script>
</head>
<body>
<div id="app">
<table>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>状态</th>
</tr>
<tr v-for="v in students">
<td>{{v.id}}</td>
<td>{{v.name}}</td>
<td>{{v.age}}</td>
<td>{{v.sex?"男":"女"}}</td>
<td>
<span v-if="v.aa==1">优</span>
<span v-else-if="v.aa==2">良</span>
<span v-else-if="v.aa==3">差</span>
<span v-else="v.aa==4">极差</span>
</td>
</tr>
</table>
</div>
<script>
let v = new Vue({
el:'#app',
data:{
students:[
{id:1,name:"憨憨",age:18,sex:false,aa:1},
{id:2,name:"傻狗",age:19,sex:true,aa:2},
{id:3,name:"憨够",age:18,sex:false,aa:3},
{id:4,name:"二傻子",age:18,sex:true,aa:4}
]
}
})
</script>
</body>
</html>
2.事件的学习: on
什么是on事件:就是平常的绑定事件 但是这个是vue提供的所以可以简化来写
原生写法:v-on:click="hh()"
简写:@click="ee()"
代码试列:
<head>
<meta charset="UTF-8">
<title>on事件</title>
<script src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<input v-on:click="hh()" type="button" value="点我" />
<input @click="ee()" type="button" value="再来点我" />
</div>
<script>
new Vue({
el:"#app",
data:{},
methods:{
hh(){
alert("叫你点你就点,真鸡儿听话")
},
ee(){
alert("罗将是瓜皮")
}
}
})
</script>
</body>
</html>
3.属性的学习:
1.computed计算属性 主要用于JS代码中的大量数据计算的时候使用
列计算当前时间:
<body>
<div id="app">
{{formatDate}}
</div>
<script>
var v = new Vue({
el:"#app",
//属性,一般是写死(从后台读取)
data:{
bronDate:1566526686736
},
//计算属性
computed:{
//这里看起来是一个方法,但是使用是当做属性来使用
formatDate(){
let date = new Date(this.bronDate);
return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
}
}
})
</script>
</body>
2.watch监控属性:目的监控某个属性 一般写死从后台读取 试列代码:
<div id="app">
<input type="text" v-model="msg">
</div>
<script>
var v = new Vue({
el:"#app",
//属性,一般是写死(从后台读取)
data:{
msg:"郑成功"
},
watch:{
//每次msg属性修改,都会执行这个方法
/**
* 第一个参数:新属性(修改后)
* 第二个参数:旧属性(修改前)
*/
msg(newVal,oldVal){
console.debug(newVal,oldVal)
}
}
})
</script>
</body>
3.组件的学习
组件template标签:切这两个表片都可以定义组件模板 template标签放在挂钩容器中将会显示该模板的样式
组件script标签:script则不会显示模板的样式
自定义组件:什么是自定义组件 就是自己定义组件切给与你所需要的属性的组件:
代码走你:
<head>
<meta charset="UTF-8">
<title>自定义组件抽取</title>
<title>Title</title><script src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<mycomponent></mycomponent>
</div>
<script>
//全局抽取
const b = "<h1>抽取</h1>";
const a = {
template:b
}
Vue.component("mycomponent",a)
new Vue({
el:"#app"
})
</script>
</body>
4.路由的学习:
路由是vue支持的但是需要引入插件:命令 npm install vue-router 当然有了插件需要引用才会有效果 需要先引入支持vur的插件在引用路由的插件
<script src="node_modules/vue-router/dist/vue-router.js"></script>
试列代码:
<body>
<div id="app">
<p>
<router-link to="/student">风景</router-link>
<router-link to="/teacher">洗手间景</router-link>
<router-link to="/school">人景</router-link>
</p>
<!--路由出口必须在挂载容器里面-->
<router-view></router-view>
</div>
<script>
const aa = '<div><img src="img/1.jpg" width="400px" height="400px"> </div>'
const bb = '<div><img src="img/4.jpg" width="400px" height="400px"></div>'
const cc = '<div><img src="img/5.jpg" width="400px" height="400px"></div>'
const aaa = { template:aa}
const bbb = { template:bb }
const ccc = { template: cc}
const q = new VueRouter({
routes
})
const s = '/student'
const t = '/teacher'
const sc = '/school'
const routes = [
{ path:s , component: aaa},
{ path:t, component: bbb },
{ path:sc, component: ccc}
]
new Vue({
el:"#app",
router:q
})
</script>
</body>
5.VueClt学习:vue提供脚手架快速搭建web工程模板
1.准备模块
2.使用dos命令进去该模块层
3.输入命令进行初始化 vue init webpack
: 初始化
4.初始化完成过后直接启动 npm run dev
: 直接运行
第一个选择yes一路回车到vue-pouter:是否引用路由选择yes其余全部no