Vue的安装及简单功能介绍

1、安装Vue Devtools

(1)找到vue-devtools的github项目,并将其clone到本地某个文件夹下,利用Git命令:git clone https://github.com/vuejs/vue-devtools.git

(2)在本地clone下来的vue-devtools文件夹下,安装项目依赖的npm包,利用npm命令:npm install

(3)然后编译项目文件,利用npm命令:npm run build

(4)最后在浏览器中添加扩展程序。先在游览器输入地址“chrome://extensions/”进入扩展程序页面,点击“加载已解压的扩展程序...”按钮,选择vue-devtools>shells下的chrome文件夹
5如果添加成功,则效果图如下,然后在调试vue项目时,就可以在调试面板中看到多了“Vue”这个选项

 

2、html文件中利用<script>标签引入VueVue会被注册为一个全局变量

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

注意:https://cdn.jsdelivr.net/npm/[email protected]/dist/链接中包含vue的不同构建版本,可以自主选择版本名称

 

3、声明式渲染

(1)DOM文本插值:采用简洁的模板语法来声明式地将数据渲染进DOM文档,这样数据和DOM就建立了响应式的关联

首先建立三个文件如下:

index.html文件

<html>

<head>

<title>DOM文本插值</title>

<!-- 引入vue,这样Vue就被声明为全局变量 -->

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

<!-- 引入外部css文件 -->

<link href="index.css" rel="stylesheet">

</head>

<body>

<!-- 模板语法,将message变量值渲染进DOM -->

<div id="app">

{{ message }}

</div>

<!-- 引入的外部js文件必须放在页面最后,否则会报错 -->

<script src="index.js"></script>

</body>

</html>

index.js文件

// 创建一个Vue实例,其中el属性代表要渲染的元素,data属性代表绑定的数据

// el data 名字都是固定的,后面还会绑定方法,利用methods属性

var app = new Vue({

el: "#app",

data: {

message:"Hello Vue!"

}

});

index.css文件

#app{

font-size: 18px;

color:green;

}

最终演示效果:

 

-

注意:

A.如果将外部js文件index.js放在head元素里面,会出现如下错误:Cannot find element

 

错误原因:把外部js文件放在head里面,导致html页面未加载完成就运行index.js文件

解决办法:把相关的外部js文件放至页面底部,保证页面全部渲染完成才加载外部js文件

B.检测数据和DOM的响应式关联:

在浏览器的控制台中修改 app.message 的值,就能立马在DOM页面中反映出来,如下:

 ==>       

 

(2)绑定元素特性:v-bind指令,绑定数据渲染某个元素对应的某个特性

index.html部分代码

<!-- 将vue实例的message属性绑定span元素的title特性 -->

<div id="app">

<span v-bind:title="message">鼠标悬停几秒钟查看此处动态绑定的提示信息!</span>

</div>

index.js文件

// 创建一个Vue实例,其中el属性代表要渲染的元素,data属性代表绑定的数据

// el data 名字都是固定的,后面还会绑定方法,利用methods属性

var app = new Vue({

el: "#app",

data: {

message:"页面加载于 " + new Date().toLocaleString()

}

});

最终演示效果:

 


4、条件绑定:v-if指令,绑定布尔变量数据来控制一个元素是否显示

index.html部分代码

<!-- 将vue实例的seen属性绑定p元素的条件判断 -->

<div id="app">

<p v-if="seen">Now you can see me!</p>

</div>

index.js

var app = new Vue({

el: "#app",

data: {

seen: true //seen变量来控制元素是否显示

}

});

“seen”为true时,p元素才会显示,当设置app.seen=false时,p元素就会隐藏起来

 

5、循环绑定:v-for指令,绑定数组元素来渲染一个项目列表

index.html部分代码

<!-- 用vue实例的todos数组元素来绑定渲染有序列表项 ,相当于 for in循环-->

<div id="app">

<ol>

<li v-for="todo in todos">

{{ todo.text }}

</li>

</ol>

</div>

index.js

var app = new Vue({

el: "#app",

data: {

todos: [

{text: "Study vue"},

{text: "Study javascript"},

{text: "Come on!"}

]

}

});

最终演示效果:(在todos数组中追加一个元素,列表项中就会新增一项)

app.todos.push({text: "this is new message!"})

 

6、处理与用户的交互:v-on指令,绑定数据和方法来添加一个事件监听器

index.html部分代码

<!-- 用 v-on 绑定一个事件监听器,相当于onclick事件处理程序-->

<div id="app">

<p> {{ message }}</p>

<button v-on:click="reverseMessage">逆转信息</button>

</div>

index.js

var app = new Vue({

el: "#app",

data: {

message: "Hello Vuejs!"

},

methods:{

reverseMessage:function(){

//将字符串分割成单个字符组成的数组,逆转后重新连接成字符串

this.message = this.message.split("").reverse().join("");}

}

});

最终演示效果:

  单击“逆转信息”后==>      

7、表单输入绑定:v-model指令,实现表单输入和应用状态之间的双向绑定

index.html部分代码

<!-- 用 v-model 将表单输入信息和DOM页面信息绑定,都绑定同一个变量即可-->

<div id="app">

<p> {{ message }}</p>

<input v-model="message"></input>

</div>

index.js

var app = new Vue({

el: "#app",

data: {

message: "Hello Vuejs!" //message变量一旦变化,应用状态和表单输入都会变化

}

});

最终演示效果:

表单输入时页面也会同步==>

8、组件化应用构建

组件系统 Vue 的一个重要概念,因为它是一种抽象,允许我们使用小型、独立和通常可复用的组件构建大型应用几乎任意类型的应用界面都可以抽象为一个组件树,比如

 

index.html部分代码

<!-- 组件化应用构建:将列表项抽象为一个组件复用-->

<div id="app">

<ol>

<!--使用自定义组件(自定义元素)todo-item将自定义todo特性与数组每一项绑-->

<todo-item

v-for="item in groceryList"

v-bind:todo="item"

v-bind:key="item.id">

</todo-item>

</ol>

</div>

index.js

//利用Vue.component定义一个新组件"todo-item",同时自定义特性“todo"以及模板

//注意:自定义组件类似于自定义元素,可以自定义特性,在html页面中当做新标签使用

Vue.component("todo-item",{

props: ["todo"],

template: "<li>{{ todo.text }}</li>"

});

// 创建一个Vue实例,其中el属性代表要渲染的元素,data属性代表绑定的数据

var app = new Vue({

el: "#app",

data: {

groceryList:[

{text: "fruit", id: 0},

{text: "vegetable", id: 1},

{text: "animal", id: 2}  ]

}

});

最终演示效果:

 

 

猜你喜欢

转载自blog.csdn.net/lixiuxiu2017/article/details/80748565
今日推荐