Vue.js文档---介绍
vue.js文档---介绍
1. vue.js是什么?
- 用于构建用户界面的渐进式框架(渐进式javascript框架)
- 和其他大型框架的区别:自底层向上,逐层应用
- 核心库只关注视图层,易上手,便于和第三方库和既有项目整合
- 为复杂单页提供驱动(结合其他工具和支持类库)
vue和其他库/框架的区别:等文档学完,最后来总结理解
视频要点:
vue.js优点:
1. 体积小:压缩后33k
2. 更要的运行效率:基于虚拟dom
(dom操作属于预处理操作,预先通过javascript进行计算,把最终的dom操作计算出来并优化的技术)
3. 双向数据绑定:不用再去操作dom对象,更多精力投入到业务逻辑上
4. 生态丰富、学习成本低:
市场上有大量成熟、稳定的基于vue.js的ui框架和常用组件(例如element ui),实现快读开发
5. 对初学者友好,入门容易、学习资料多
vue.js对有前端开发来说:
1. 使用场景广泛:web端,移动端,跨平台应用开发
2. 招聘市场需求大、前景好
2. 起步
引入vue
1. 命令行工具cli(官方cli脚手架)
2. 直接用<script>引入
<!-- 引入vue:命令行工具cli(官方cli脚手架), 直接用<script>引入 --> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <!-- 生产环境版本,优化了大小和速度 --> <script src="https://cdn.jsdelivr.net/npm/vue"></script>
console: 安装成功
3. 声明式渲染
vue.js的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进dom系统:
文本插值
console:
绑定元素attibute:
<div id="app-2"> <span v-bind:title="message"> 鼠标悬停几秒查看此处动态绑定的提示信息! </span> </div>
vue实例
var app2 = new vue({ el: "#app-2", data: { message: '页面加载于' + new date().tolocalestring() } })
console:
v-bind:title="message"
"将这个元素节点的title attribute和vue实例的message属性保持一致"
如果你再次打开浏览器的 javascript 控制台,输入 app2.message = '新消息'
,就会再一次看到这个绑定了 title
attribute 的 html 已经进行了更新
4. 条件与循环
<div id="app-3"> <p v-if="seen">现在你看到我了</p> </div>
var app3 = new vue({ el: '#app-3', data: { seen: true } })
console:
继续在控制台输入 app3.seen = false
,你会发现之前显示的消息消失了。
我们不仅可以把数据绑定到dom文本或attribute,还可以绑定到dom结构
v-for指令可以绑定数组的数据来渲染一个项目列表:
<div id="app-4"> <ol> <li v-for="todo in todos"> {{todo.text}} </li> </ol> </div>
var app4 = new vue({ el: "#app-4", data: { todos: [ { text: '学习javascript' }, { text: '学习vue' }, { text: '整个项目' } ] } })
console:
在控制台里,输入 app4.todos.push({ text: '新项目' })
,你会发现列表最后添加了一个新项目。
5. 处理用户循环
为了让用户和你的应用进行交互,我们可以用 v-on
指令添加一个事件监听器,通过它调用在 vue 实例中定义的方法:
<div id="app-5"> <p>{{message}}</p> <button v-on:click="reversemessage">反转消息</button> </div>
var app5 = new vue({ el: "#app-5", data: { message: 'hello vue.js!' }, methods: { reversemessage: function () { this.message = this.message.split('').reverse().join('') } } })
console:
注意在 reversemessage
方法中,我们更新了应用的状态,但没有触碰 dom——所有的 dom 操作都由 vue 来处理,你编写的代码只需要关注逻辑层面即可。
vue 还提供了 v-model
指令,它能轻松实现表单输入和应用状态之间的双向绑定。
<div id="app-6"> <p> {{message}} </p> <input v-model="message"> </div>
var app6 = new vue({ el: '#app-6', data: { message: 'hellow vue!' } })
console:
6. 组件化应用架构
组件系统是vue的另一个重要概念,允许我们使用小型、独立和通常可复用的组件构建大型应用
在 vue 里,一个组件本质上是一个拥有预定义选项的一个 vue 实例。在 vue 中注册组件很简单: