Vue 2.5 入门学习记录
- 1. 基础知识
- Vue 是什么
- Vue引入方式
- Vue特点
- Vue实例中的数据事件方法
- Vue中的属性绑定和双向绑定
- Vue中的v-if、v-show、v-for
- toDoList制作
- 局部组件&全局组件
 
- 2. vue-cli工程
- 3. 工程案例实践
- 使用vue-cli实现todoList及删除某个元素
- 全局样式与局部样式
 
- 4. 源码index.html
 
- 5. 效果图
- 参考
 
Vue总是听却一知半解,那就系统学下吧——学习是令人兴奋的,期待它带给我的充实感和成就感。
看完的感受是比较深入浅出的,能让对基础的语法,用法有一个大致的了解,入门课还是挺不错的。
1. 基础知识
Vue 是什么
Vue(发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。
Vue引入方式
本地vue.js,script方式引入, cdn方式引入
Vue特点
声明式渲染(声明式标识html与javascript状态的关系)
 响应式(Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOM)
 渐进式框架(Vue 是一个框架,也是一个生态。灵活可以逐步集成,项目可小可大)
- 挂载点、模板、实例之间的关系(挂载点:一个Dom,Dom下的元素即模板,也可以写在Vue下的Template里作为实例,Vue只处理挂载点之内的元素)
  
Vue实例中的数据事件方法
插入式表达式:{{msg}} 及 模板式表达式:<div v-text=“msg”
 v-text会原样输出
 v-html会解析html后输出
 v-on:click= 同 @click= ;方法写在Vue下methods中
 
Vue中的属性绑定和双向绑定
属性绑定:v-bind:title 同 :title ,后边文本是js表达式
 双向数据绑定: v-model 改变界面及后端俩个都会修改
 
- Vue的计算属性和侦听
 computed更高效,只有当其中一个值发生变化时才会重新计算,否则用上次的缓存值;
 watch监听(监听总和,也是任意一个改变都会监听到)

Vue中的v-if、v-show、v-for
v-if: 不展示会完全销毁dom,在创建
 v-show:不展示会设置display:none;
 对于一次性的展示v-if效率更高,对于频繁显示销毁的,v-show效率更高一些
 v-for 用于循环遍历元素 
toDoList制作

局部组件&全局组件

 
2. vue-cli工程
需要配置好环境,先安装node
- 下载安装node:http://www.nodejs.com.cn/
- 下载安装node:https://nodejs.org/en/download
node -v
npm -v
运行都不报错了,然后安装vue-cli;
- https://v2.cn.vuejs.org/v2/guide/installation.html
  
3. 工程案例实践
使用vue-cli实现todoList及删除某个元素
全局样式与局部样式
当给组件<style scope的>限定scoped时样式至作用于子组件
4. 源码index.html
<!DOCTYPE html>
<head>
<META Hcharset=UTF-8"/>
<title>Vue 入门</title>
<script src="./vue.js"></script>
</META>
</head>
<TITLE>Vue 入门</TITLE>
   
<body>
<!-- <div v-model="root" @click="clickedM">
	{{msg}}
</div> -->
<div id="root2">{{messg}}
	<br/>
	姓:<input v-model="firstName"/>
	名:<input v-model="lastName"/>
	<div>{{fullName}}</div>
	<div>{{count}}</div>
	<div v-if="show">hello world</div>
	<button @click="handleDisplay" title="v-if">v-if 单击消失/显示</button>
	<div v-show="show">hello world</div>
	<button @click="handleDisplay" title="v-show">v-show 单击消失/显示</button>
<br/>
    <input v-model="dbel"/>
    <button @click="handleClick" :title="title">确认</button>
    <br/>
	<ul>
		<li v-for="(item,index) of list" :key="index">{{item}}</li>
	</ul>
    局部组件作为新组件:
	<ul>
		<todo-item v-for="(item,index) of list" :key="index" :content="item" :index="index" @delete="handleDelete">
		</todo-item>
	<ul/>
</div>
<script>
	Vue.component('todo-item',{
           props: ['content','index'],
           template: '<li @click="handleDelete">{{content}}</li>',
		   methods:{
			 handleDelete: function(){
				alert(this.index)
				this.$emit('delete',this.index)
		     }
		   }
	    }
	)
	new Vue({
		el: "#root2",
		data: {
			messg: "hello world",
			firstName:"",
			lastName:"",
			count:0,
			list:[1,2,3],
			dbel:'',
			title: '待办事项列表',
			show: true
		},
		computed: {
			fullName: function(){
				return this.firstName+' '+this.lastName
			}
		},
		watch: {
			fullName: function(){
				this.count++
			}
		},
		methods: {
			handleClick: function(){
				this.list.push(this.dbel)
				this.dbel=''
			},
			handleDisplay: function(){
				this.show = !this.show
			},
			handleDelete: function(index){
				alert('父类: '+index)
				this.list.splice(index,1)
		     }
		}
	});
</script>
</body>
5. 效果图
引入本地js效果截图
 

- 删除组件
  
参考
- vue官网:https://cn.vuejs.org/
- https://www.imooc.com/video/16994



















