vue2.0 入门
来源:互联网 发布:mac air wi-fi连电视上 编辑:程序博客网 时间:2024/06/16 15:53
安装
1,安装完成node,node有自带的npm,可以直接在cmd中,找到nodeJs安装的路径下,进行命令行全局安装vue-cli。(npm install –global vue-cli)
2,安装后,检查是否安装成功(显示版本则安装成功)。(vue -V)
3,使用vue建一个项目名叫“my-project”。(vue init webpack my-project)
—-注:vue-cli 的模板包括 webpack 和 webpack-simple,前者是比较复杂专业的项目,他的配置并不全放在根目录下的 webpack.config.js 中。
—-webpack-simple 相对简单的,它根目录下才有个 webpack.config.js。
4,注意:项目建立过程中,有如下选择,选择NO。(该选项为使用ESLint规范你的代码,一个空格错误都将报错,不开启,可以避免不必要的麻烦)
—-ESLint规范建议开启,加强代码规范
5,建立项目后,安装项目依赖npm install
6,安装成功,项目目录下多出一个node_modules文件夹
7,进入项目目录文件夹(my-project)中,就可以使用vue进行开发啦
8,使用npm run dev,便可以打开本地服务器实时查看效果(localhost:8080)
9,退出监听,可以直接Ctrl+C,选择Y。
(安装vetur)
目录结构
导入jquery和bootstrap
安装jquery
npm install jquery
配置jquery
将jquery以插件打包,需要为webpack的plugins进行插件设置。
在build/webpack.base.conf.js文件中,在整个配置对象的末尾增加plugins配置。
在webpack.base.conf.js中的配置项,可以在dev和build出来的pro版本中都有效。
下面的配置其实就是变量名的真正指向设置,这样,在页面中对jquery的各种名字的调用就会有效,否则bootstrap跑不起来。
plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", "windows.jQuery": "jquery" }) ]
安装bootstrap
npm install bootstrap
引用bootstrap
在src/main.js文件的顶部加入如下对bootstrap主要文件的引用,注意这里的路径,不在是从src/assets加载,而是换成了从node_modules加载。
import 'bootstrap/dist/css/bootstrap.min.css'import 'bootstrap/dist/js/bootstrap.min.js'
配置bootstrap
因为bootstrap除了js和css文件外,还有字体文件需要一并打包,默认生成的webpack.base.conf.js中的moudle->rules设定中都已经包含对字体文件的打包设置,所以无需修改
基础语法
文本
{{}}
<div id="app"> <p>{{ message }}</p></div>
html
使用 v-html 指令用于输出 html 代码:
<div id="app"> <div v-html="message"></div></div><script>new Vue({ el: '#app', data: { message: '<h1>菜鸟教程</h1>' }})</script>
属性
HTML 属性中的值应使用 v-bind 指令。
以下实例判断 class1 的值,如果为 true 使用 class1 类的样式,否则不使用该类:
<div id="app"> <label for="r1">修改颜色</label><input type="checkbox" v-model="class1" id="r1"> <br><br> <div v-bind:class="{'class1': class1}"> directiva v-bind:class </div></div><script>new Vue({ el: '#app', data:{ class1: false }});</script>
表达式
Vue.js 都提供了完全的 JavaScript 表达式支持。
<div id="app"> {{5+5}}<br> {{ ok ? 'YES' : 'NO' }}<br> {{ message.split('').reverse().join('') }} <div v-bind:id="'list-' + id">菜鸟教程</div></div><script>new Vue({ el: '#app', data: { ok: true, message: 'RUNOOB', id : 1 }})</script>
条件和循环
条件语句实例
v-if
<div id="app"> <div v-if="type === 'A'"> A </div> <div v-else-if="type === 'B'"> B </div> <div v-else-if="type === 'C'"> C </div> <div v-else> Not A/B/C </div></div><script>new Vue({ el: '#app', data: { type: 'C' }})</script>
循环语句实例
v-for
<template><div id="loop"><ul><li v-for='site in sites'>{{ site.name }}</li></ul></div></template><script>export default { name: 'loop', data () { return { sites: [ { name: 'Baidu' }, { name: 'Google' }, { name: 'Taobao' } ] } }}</script>
若遇到“[vue-language-server] Elements in iteration expect to have ‘v-bind:key’ directives.”问题:Vue 2.2.0+的版本里,当在组件中使用v-for时,key是必须的。更改vetur配置 vscode->首选项->设置->搜索(vetur)
注意
1.一个组件下只能有一个并列的 div,可以这么写,所以复制官网示例的时候只要复制 div 里面的内容就好。
但是不能这样写:
2.数据要写在 return 里面而不是像文档那样子写
错误的写法:
事件
事件监听可以使用 v-on 指令:
<div id="app"> <button v-on:click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次。</p></div><script>new Vue({ el: '#app', data: { counter: 0 }})</script>
通常情况下,我们需要使用一个方法来调用 JavaScript 方法。
v-on 可以接收一个定义的方法来调用。
<div id="app"> <!-- `greet` 是在下面定义的方法名 --> <button v-on:click="greet">Greet</button></div><script>var app = new Vue({ el: '#app', data: { name: 'Vue.js' }, // 在 `methods` 对象中定义方法 methods: { greet: function (event) { // `this` 在方法里指当前 Vue 实例 alert('Hello ' + this.name + '!') // `event` 是原生 DOM 事件 if (event) { alert(event.target.tagName) } } }})// 也可以用 JavaScript 直接调用方法app.greet() // -> 'Hello Vue.js!'</script>
除了直接绑定到一个方法,也可以用内联 JavaScript 语句:
<div id="app"> <button v-on:click="say('hi')">Say hi</button> <button v-on:click="say('what')">Say what</button></div><script>new Vue({ el: '#app', methods: { say: function (message) { alert(message) } }})</script>
表单
你可以用 v-model 指令在表单控件元素上创建双向数据绑定。
<div id="app"> <p>input 元素:</p> <input v-model="message" placeholder="编辑我……"> <p>消息是: {{ message }}</p> <p>textarea 元素:</p> <p style="white-space: pre">{{ message2 }}</p> <textarea v-model="message2" placeholder="多行文本输入……"></textarea></div><script>new Vue({ el: '#app', data: { message: 'Runoob', message2: '菜鸟教程\r\nhttp://www.runoob.com' }})</script>
复选框
<div id="app"> <p>单个复选框:</p> <input type="checkbox" id="checkbox" v-model="checked"> <label for="checkbox">{{ checked }}</label> <p>多个复选框:</p> <input type="checkbox" id="runoob" value="Runoob" v-model="checkedNames"> <label for="runoob">Runoob</label> <input type="checkbox" id="google" value="Google" v-model="checkedNames"> <label for="google">Google</label> <input type="checkbox" id="taobao" value="Taobao" v-model="checkedNames"> <label for="taobao">taobao</label> <br> <span>选择的值为: {{ checkedNames }}</span></div><script>new Vue({ el: '#app', data: { checked : false, checkedNames: [] }})</script>
单选框
<div id="app"> <input type="radio" id="runoob" value="Runoob" v-model="picked"> <label for="runoob">Runoob</label> <br> <input type="radio" id="google" value="Google" v-model="picked"> <label for="google">Google</label> <br> <span>选中值为: {{ picked }}</span></div><script>new Vue({ el: '#app', data: { picked : 'Runoob' }})</script>
select列表
<div id="app"> <select v-model="selected" name="fruit"> <option value="">选择一个网站</option> <option value="www.runoob.com">Runoob</option> <option value="www.google.com">Google</option> </select> <div id="output"> 选择的网站是: {{selected}} </div></div><script>new Vue({ el: '#app', data: { selected: '' }})</script>
组件
在/src/components文件夹下创建一个新的组件,例如:Loop.vue
<template><div id="loop"><ul><li v-for='site in sites'>{{ site.name }}</li></ul></div></template><script>export default { name: 'loop', data () { return { sites: [ { name: 'Baidu' }, { name: 'Google' }, { name: 'Taobao' } ] } }}</script>
使用组件:
S1:引入。在<script></script>
标签内的第一行写
import Loop from ‘@/components/Loop’
S2:注册。在<script></script>
标签内的 data 代码块后面加上 components: { firstcomponent }。
export default { data () { return { msg: 'Hello Vue!' } }, components: { Loop }}
S3:使用。在<template></template>
内加上<loop></loop>
ajax
vue-resource是Vue提供的体格http请求插件,如同jQuery里的$.ajax,用来和后端交互数据的。
在使用时,首先需要安装vue-resource插件
1.在项目跟目录上安装:
npm install vue-resource
2.引入resource插件
import VueResource from 'vue-resource'; Vue.use(VueResource)
3.发送请求:
this.$http.get("http://www.vrserver.applinzi.com/aixianfeng/apihome.php").then(function(res){ console.log(res) })
vue-resource的请求API是按照REST风格设计的,它提供了7种请求API:
get(url, [options])head(url, [options])delete(url, [options])jsonp(url, [options])post(url, [body], [options])put(url, [body], [options])patch(url, [body], [options])
emulateHTTP的作用
如果Web服务器无法处理PUT, PATCH和DELETE这种REST风格的请求,你可以启用enulateHTTP现象。启用该选项后,请求会以普通的POST方法发出,并且HTTP头信息的X-HTTP-Method-Override属性会设置为实际的HTTP方法。
Vue.http.options.emulateHTTP = true;
emulateJSON的作用
如果Web服务器无法处理编码为application/json的请求,你可以启用emulateJSON选项。启用该选项后,请求会以application/x-www-form-urlencoded作为MIME type,就像普通的HTML表单一样。
Vue.http.options.emulateJSON = true;
- Vue2.0入门
- vue2.0 入门
- vue2.0从入门到入坑
- vue2.0入门(一)
- vue2.0入门--创建项目
- vue2.0组件快速入门
- vue2 入门
- vue2.0学习入门(webpack)
- 入门Vue2.0及学习实战项目
- Vue2入门小结
- vue2.0
- vue2.0
- vue2.0
- vue2.0 开发实践总结之入门篇
- vue2.0开发入门笔记 之 .vue文件
- 学习VUE2.0入门到进阶路线推荐
- vue2.0从入门到努力(1)--安装环境
- vue2.0Demo
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
- nginx源码学习
- MAC移动端抓包注意
- java编写RabbitMQ 的demo
- C# 光源的渐变生成算法
- vue2.0 入门
- docker升级简记
- 微信回调参数获取不到问题
- PHP 中检查或过滤IP地址的实现代码
- 作业
- POJ1741 Tree(BZOJ1468)
- 零基础学图形学(4) 几何知识——点和向量的数学操作
- 从C语言细节谈到程序员的成长过程
- Android 数据库框架OrmLite的常规使用