vue:渐进式JavaScript框架
渐进式:声明式渲染 --> 组件系统 --> 客户端路由 --> 集中式状态管理 --> 项目构建
vue官网
优点:(官方)
var vm = new Vue({
el: '#app',
data: {
msg: 'Hello Vue',
msg1:'html
'
},
methods:{
handle:function(){
//this是vue的实例对象
this.num++;
}
}
});
<div>{
{msg}}div>
1、如何理解前端渲染?
把数据填充到HTML标签中 --> 静态HTML内容
2、前端渲染方式
原生JS拼接字符串:
将数据以字符串的方式拼接到HTML标签中
缺点: 不同开发人员代码风格差别很大,随着业务复杂,后期维护变得逐渐困难。
使用前端模板引擎:
一套模板语法规则
优点:代码可读性提高,方便后期的维护。
缺点:没有专门提供事件机制。
使用vue特有的模板语法
1.提供样式
[v-cloak]{
display:none;
}
2.在插值表达式所在的标签中添加v-cloak指令
<div v-text='msg1'>div>
<div v-html='msg1'>div>
<div v-pre>{
{msg}}div>
如何理解响应式:
什么是数据绑定
v-once指令只编译一次
<div v-once>{
{msg}}div>
什么是双向数据绑定?
用v-model指令实现数据绑定
<input type="text" v-model='msg'>
MVVM设计思想
M <=VM=> V
<button v-on:click='num++'>点击button>
<button @click='num++'>点击button>
<button @click='handle'>点击button>
<button @click='handle()'>点击button>
<button @click='say("hi",$event)'>点击button>
<button v-on:click.stop='handle()'>点击button>
<a href="http://www.baidu.com" v-on:click.prevent='handle()'>百度a>
<input type="text" v-on:keyup.enter='handle'>
<input type="text" v-on:keyup.a='handle'>
<script>
Vue.config.keyCodes.a = 65;
script>
<input type="text" v-on:keyup.按键的keyCode='handle'>
<a v-bind:href="url">跳转a>
<a :href="url">跳转a>
<input type="text" v-bind:value='msg' v-on:input='msg = $event.target.value'>
<div v-bind:class="{active:isActive}">div>
<div v-bind:class="{active:isActive,avtive2:isActive2}">div>
<div v-bind:class="[activeClass,errorClass]">div>
<div v-bind:class="[activeClass,errorClass,{test:isTest}]">hellodiv>
<div v-bind:class="[arrClass]">hellodiv>
<div v-bind:style="{
color:activeColor,fontSize:fontSize}
">hellodiv>
<div v-bind:style="objStyles">hellodiv>
<div v-bind:style="[objStyles,baseStyles]">hellodiv>
<div v-if='score>90'>优秀div>
<div v-else-if='score<90&&score>=80'>良好div>
<div v-else-if='score<80&&score>=60'>一般div>
<div v-else>比较差div>
<div v-show='false'>测试v-showdiv>
<li v-for='item in fruits'>{
{item}}li>
<li v-for='(item,index) in fruits'>{
{item+'----'+index}}li>
<li v-for='item in myFruits'>{
{item.ename+'---'+item.cname}}li>
<li :key='item.id' v-for='item in myFruits'>{
{item.ename+'---'+item.cname}}li>
<div v-for='(v,k,i) in obj'>{
{v+'---'+k+'---'+i}}div>
<div v-if='v==12' v-for='(v,k,i) in obj'>{
{v+'---'+k+'---'+i}}div>