1、vuejs框架简介
1)准备知识
① 前端开发基础html、CSS、js
② 前端模块化基础
③ 对ES6有初步的了解
2)vuejs是一种轻量级的MVVM框架,同时吸收了React和Angular的优点,强调了React组件化的概念,可以轻松的实现数据和展现的分离,也吸收了Angular灵活的指令和页面操作的方法。
3)双向绑定
① 在页面上进行的输入会绑定到js代码里的变量
② Js代码里的变动也会体现在另外一个调用该变量的页面
2、Vuejs开发环境的搭建
1)推荐使用官方提供的命令行工具:
快速下载一套基于vuejs的开发模板,不仅包含了vuejs的框架,还包含了vuejs打包工具、测试工具、开发调试的服务器等,可以不必关心具体的打包和部署的细节,把关注点放在vuejs本身对项目功能的实现上。
2)命令行工具的安装及使用
npm:node的一个包管理工具
Windows系统还需要手动安装git
技巧:nmp在国内网络环境会很慢,推荐使用淘宝的一个npm镜像(nmp.taobao.org),先使用命令sudi npm install -g cnpm --registry=https://registry.nmp.taobao.org安装cnpm安装到系统,以后使用npm的地方就使用cnpm来进行替换。
步骤:
① 使用命令sudo cnpm install -g vue-cli全局安装vue-cli(-g指的是全局安装,将安装到系统的node目录下,不加-g会安装到当前目录)
② 初始化一个项目,使用vue init webpack my-PRoject创建一个基于”webpack”的新项目。第一个参数webpack是项目类型,表示使用webpack这套模板来进行压缩和打包,第二个参数my-project是项目名称。
③ 使用命令cd my-project进入my-project目录,目录下的src目录是后续开发的目录。Src目录下有App.vue文件和assets文件夹及components文件夹。但是,下载下来的项目并不能直接跑起来,需要下载其依赖。
④ 使用命令sudo npm install或sudo cnpm install(较快)可以直接安装所有依赖,因为my-project目录下有一个package.json文件。安装好后my-project目录下会多出一个node_modeules目录。
⑤ 使用命令npm run dev运行项目,这时服务器就被启动,它监听的端口是localhost:8080,运用浏览器访问localhost:8080即可看到vuejs的模板页面。随后只需要在src目录下的App.vue进行具体的项目开发即可。说明一点,vuejs有一个热更新,对App.vue进行修改后,保存,页面会进行相应的更新。
3、从*.vue到页面
用webpack将*.vue打包成.Hml、.css和.js,其中.js其实就是一个新的Vue对象,数据(model)层都在Vue对象里,展现层都在.html里。
Vue.js的一个组件包括:<template></template>包装的html、<style></style>包装的css和<script></script>包装的js。
一个最简单的实例:
<div id=”app”>
{{message}}
</div>
new Vue({
el: “#app”,
data:{
message: “Hello Vue.js”
}
})
4、Vue.js组件的重要选项
1)Vue.js组件的重要选项
① data:所有数据都放在data这个对象中,data中可以进行双向绑定,通过this可以访问数据。
② methods:所有方法都放在message这个对象中。
③ watch:监听data中的数据变化,数据变化则执行相应的方法。
例:
new Vue({
data: {
a: 1,
b: []
},
methods: {
doSomething: function() {
this.a++;
}
},
watch: {
‘a’: function(val, oldVal) {
Console.log(val, oldVal)
}
}
})
2)模板指令——html和vue对象的粘合剂
模板指令写在html里。
① 数据渲染:v-text、v-html、{{}}
a. 三者不等价,v-text是格式处理了html,v-html保存html结构;
b. 其值都对应到Vue对象数据源里的数据
例:
<p>{{a}}</p>
<p v-text=”a”></p>
<p v-html=”a”></p>
new Vue({
data: {
a: 1,
b: []
}
})
② 控制模块隐藏:v-if、v-show
控制元素的显示和隐藏,区别在于v-if直接不渲染这个DOM元素,v-show则是通过css的display:none来进行隐藏,在代码里是能看到这个DOM元素的。
例:
<p v-if=”isShow”></p>
<p v-show=”isShow”></p>
new Vue({
data: {
isShow: true
}
})
③ 渲染循环列表:v-for
渲染Vue对象数据源里的数组列表。
例:
<ul>
<li v-for=”item in items”>
<p v-text=”item.label”></p>
</li>
</ul>
new Vue({
data: {
items: [
{
label: “apple”
},
{
label: “banana”
}
]
}
})
④ 事件绑定:v-on
简写模式:@
例:
<button v-on:click=”doThis”></button>
<button @click=”doThis”></button>
new Vue({
methods: {
doThis: function(someThing) {
}
}
})
⑤ 属性绑定:v-bind
对元素的属性的操作
最常用的是class,v-bind:class可以简写为:class,当然v-bind:src也可以简写为:src。
对于class,假如里面是对象,key指的是class的名字,其值是对这个class是否展现的一个判断;假如里面是数组,则数组元素在data里面是一个字符串,是要直接展示出来的。显然,对象里的变量是布尔值,是对这个class是否展现的一个判断,数组元素则是字符串。
3)小结
① new一个vue对象时候可以设置它的属性,其中最重要的包括三个,分别是data,methods,watch。其中data代表vue对象的数据,methods代表vue对象的方法,watch设置了对象监听的方法。
② Vue对象里的设置通过html指令进行关联。
③ 重要的指令包括:v-text渲染数据、v-if控制显示、v-on绑定事件、v-for循环渲染等。
例:
<img v-bind:src=”imageSrc”>
<div :class=”{red: isRed}”></div>
<div :class=”[classA, classB]”></div>
<div :class=”[{classA, {classB: isB, classC: isC}]”></div>
新闻热点
疑难解答