Vue框架的使用。

使用VUE首先需要下载安装一些列的环境。

第一步:

  安装Node.js

  下载并安装:node-v8.9.0-x64.msi

第二步:

  安装Vue脚手架:

  cmd以管理员身份执行

  npm install vue-cli -g 或者安装淘宝版 cnpm install vue-cli -g

  vue -V  查看是否安装成功

第三步:

  创建项目:

  vue init webpack myProject  (项目名字)

  提示内容:

  

  然后初始化:

  vue init webpack myProject

  

第四步:

  切换到项目目录下,安装依赖包。

  cd myProject

  npm install   安装

安装之后 查看浏览器localhost:8080  是否有 welcome to You Vue.js App字样。

有就代表环境配置以及项目创建成功了。

接下来准备敲代码。。。。

稍等,讲解一下Vue框架的逻辑。

Vue 单页面应用。

一个项目,只能创建一个new Vue。

vue项目创建成功之后,

测试npm run dev ,查看localhost 8080 能否查看,测试成功之后,

用pycharm打开项目目录,

项目目录内,node_modules目录一般是放依赖包,安装的依赖包去这里查看是否安装成功。

src一般放项目需要的程序以及组件等等。

Vue项目的一般逻辑是:

用户直接访问的是index.html

index.html下面是 App.vue 和 main.js  通过路由的方式(index.js)  连接组件components ,目录中的组件,渲染具体内容。

所以编写思路就是:

  1  创建组件(Vue文件)

  2  配置路由

  3  编写路径 (router-link)

然后是代码:

在src目录下的components目录下创建组件:

duanzi.vue

 1 <template>
 2     <div class="hello">
 3         <h1>{{ temp }}</h1>   //渲染msg变量
 4         <h2>hey girl</h2>
 5         <ul>
 6             <li v-for="item in arr">     //循环arr数组
 7             姓名:{{item.name}}
 8             性别:{{item.sex}}
 9             年龄:{{item.age}}
10             </li>
11         </ul>
12         <div>
13             <ul>
14                 <li>
15                 姓名:<input type="text" v-model="username">     //input框输入信息
16                 </li>
17                 <li>
18                 年龄:<input type="text" v-model="userage">
19                 </li>
20                 <li>
21                 性别:<select v-model="usersex">                        //select下拉框
22                                 <option value="男" selected>男</option>
23                                 <option value="女" >女</option>
24                                 </select>
25                 </li>
26             </ul>
27          </div>
28      <input type="button" value="增加" v-on:click="addStu">      //button 绑定事件  addStu函数
29 </div>
30
31 </template>
32
33 <script>
34 export default {
35     name: ‘duanzi‘,
36     data () {
37         return {
38             temp: ‘我是duanzi页面‘,    //定义temp需要渲染的内容
39             arr:[],                       //methods内的函数需要的变量需要现在data中定义,避免函数内是window对象。
40             username:‘‘,
41             usersex:‘男‘,
42             userage:‘‘
43             }
44         },
45     mounted:function () {     //mounted函数指的页面一渲染首先执行的函数。 这里首先执行showlist函数
46         this.showList()
47         },
48     methods:{      //函数一般都写在这里,可以写多个函数。
49     showList(){     //这里是写死一个数组,data里的空列表实际就是为了这个数组而声明一下,不然this指的是window对象,而不是data中的列表。
50     this.arr = [{
51         name:‘tom‘,age:18,sex:‘male‘},
52         {name:‘jerry‘,age:19,sex:‘male‘}]
53         },
54     addStu(){            //绑定事件的函数,在arr数组中添加用户在input框中输入的内容。提交之后就能实时渲染到页面了。
55         this.arr.push({name:this.username,age:this.userage,sex:this.usersex})
56     }}
57     }
58 </script>
59
60 <!-- Add "scoped" attribute to limit CSS to this component only -->
61 <style scoped>    //下面是一些默认的css样式。
62 h1, h2 {
63     font-weight: normal;
64 }
65 ul {
66     list-style-type: none;
67     padding: 0;
68 }
69 li {
70     /*display: inline-block;*/
71     margin: 0 10px;
72     margin-bottom: 10px;
73 }
74 a {
75     color: #42b983;
76 }
77 </style>

在创建另一个组件HelloWorld.vue:

 1 <template>
 2     <div class="hello">
 3         <h1>{{ msg }}</h1>
 4         <h2>hey boy</h2>
 5
 6     </div>
 7
 8 </template>
 9
10 <script>
11 export default {
12     name: ‘HelloWorld‘,
13     data () {
14         return {
15             msg: ‘hello world‘
16             }
17         },
18     methods:{
19         showme:function(){
20         alert(this.msg)}
21         }
22     }
23 </script>
24
25 <!-- Add "scoped" attribute to limit CSS to this component only -->
26 <style scoped>
27     h1, h2 {
28     font-weight: normal;
29   }
30     ul {
31     list-style-type: none;
32     padding: 0;
33   }
34     li {
35     display: inline-block;
36     margin: 0 10px;
37 }
38 a {
39     color: #42b983;
40 }
41 </style>

HelloWorld.vue

代码道理和duanzi.vue一样,只是输出内容不一样,实现两个页面。

之后在App.vue中配置具体渲染位置。

在index.js中配置路由。

 1 <template>
 2     <div id="app">   //最外层div,这里的id很重要,这里的id和index.html是一致的,代表将渲染到的位置。
 3         <h1>澳门首家在线赌场</h1>   //这里写的标签在两个组件的页面都能显示,类似django模板继承效果。
 4         <router-link to="/"> helloworld</router-link>
 5         //这里的router-link 就是将组件渲染到这里,实际是一个a标签,to写的是path路径,和index.js中是一致的。
 6         <router-link to="/duanzi"> duanzi</router-link>
 7         <router-view/>  //这个router-view 是关键点,不能删除。
 8     </div>
 9 </template>
10
11 <script>
12 export default {
13     name: ‘app‘    //这里也是写那个id。
14     }
15 </script>
16
17 <style>                  //下面是默认样式
18 #app {
19 font-family: ‘Avenir‘, Helvetica, Arial, sans-serif;
20 -webkit-font-smoothing: antialiased;
21 -moz-osx-font-smoothing: grayscale;
22 text-align: center;
23 color: #2c3e50;
24 margin-top: 60px;
25 }
26 </style>

App.vue

面是配置App.vue,下面开始配置index.js路由

 1 import Vue from ‘vue‘     //这里的导入和python不太一样需要注意。
 2 import Router from ‘vue-router‘
 3 import HelloWorld from ‘@/components/HelloWorld‘  //导入两个组件,@代表从根目录下找。
 4 import duanzi from ‘@/components/duanzi‘
 5
 6 Vue.use(Router)
 7
 8 export default new Router({
 9 //路由除了创建项目的时候安装,也可以单独安装
10     routes: [
11         {
12             path: ‘/‘,    //路径需要和App.vue中一致,不然找不到。/目录建议默认一个,不然首页会为空。
13             name: ‘HelloWorld‘,   //这个名字不是很重要,可写可不写,主要是区分组件功能。
14             component: HelloWorld   //写组件文件名字。
15         },
16         {
17             path: ‘/duanzi‘,
18             name: ‘duanzi‘,
19             component: duanzi
20         }
21      ]
22 })

index.js

如上就是路由的配置。

main.js代码:

 1 import Vue from ‘vue‘
 2 import App from ‘./App‘
 3 import router from ‘./router‘
 4 import axios from "axios"
 5 Vue.config.productionTip = false
 6 Vue.prototype.axios=axios
 7 /* eslint-disable no-new */
 8 new Vue({
 9     el: ‘#app‘,
10     router,
11     template: ‘<App/>‘,
12     components: { App }
13 })

main.js

index.html代码:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <meta name="viewport" content="width=device-width,initial-scale=1.0">
 6         <title>myvue</title>
 7     </head>
 8 <body>
 9     <div id="app"></div>
10     <h2>我是index.html</h2>  //这里我写了个h2标签,区分一下效果。
11
12
13     <!-- built files will be auto injected -->
14     </body>
15 </html>

index.html

写完代码,我们可以通过npm start  (npm run dev也可以)在cmd中启动Vue项目,然后通过http://localhost:8080  访问内容。

以下为实现效果:

另一个页面:

完结撒花??ヽ(°▽°)ノ?

  

时间: 2024-11-09 11:45:53

Vue框架的使用。的相关文章

理解vue实现原理,实现一个简单的Vue框架

参考: 剖析Vue实现原理 - 如何实现双向绑定mvvm Vue.js源码(1):Hello World的背后 Vue.js官方工程 本文所有代码可以在git上找到. 其实对JS我研究不是太深,用过很多次,但只是实现功能就算了.最近JS实在是太火,从前端到后端,应用越来越广泛,各种框架层出不穷,忍不住也想赶一下潮流. Vue是近年出的一个前端构建数据驱动的web界面的库,主要的特色是响应式的数据绑定,区别于以往的命令式用法.也就是在var a=1;的过程中,拦截'='的过程,从而实现更新数据,w

Vue框架tab切换高亮最简易方法

以往我们实现tab切换高亮通常是循环遍历先把所有的字体颜色改变为默认样式,再点亮当前点击的选项,而我们在vue框架中实现tab切换高亮显示并不需要如此,只需要将当前点击选项的index传入给一个变量,再将这个变量和当前index匹配,若true则显示高亮,否则默认样式,代码如下: 如需转载请注明出处:http://www.cnblogs.com/zishang91/p/7580204.html,以便有错误可以及时修改,若有错漏不足之处,请见谅并且指点,谢谢!!!

Vue框架axios请求(类似于ajax请求)

Vue框架axios get请求(类似于ajax请求) 首先介绍下,这个axios请求最明显的地方,通过这个请求进行提交的时候页面不会刷新 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.js"></scr

vue框架(一)

vue是什么? vue:一个构建用户界面的框架. 1在HTML元素显示数据 {{}} v-text v-html 2指令: 通过指令,来给DOM元素赋值或者其它操作:v-text v-html 根据表达式的真假值,动态地插入.移除元素:v-text v-html v-if\v-else 根据表达式的真假值,动态地显示.隐藏元素:v-show 根据数值渲染元素列表:v-for 绑定元素的属性,可以动态改变:v-bind 根据命令监听且执行事件:v-on v-model:数据双向绑定 它是把视图和数

Vue框架下的node.js安装教程

Vue框架下的node.js安装教程 python服务器.php  ->aphche.java ->tomcat.   iis -->它是一个可以运行JAVASCRIPTR 的运行环境 -->它可以作为后端语言(websocket \ ) --强大的包管理工具npm,可以使用它安装插件 -->VUE框架是基于node.js平台运行的 --->它是基于chrome浏览器的V8引擎,运行速度快,性能高效 安装淘宝镜像:npm install cnpm -g --regist

在Vue框架中引入Element

文章会讲到如何在Vue框架中引入Element 那我们先来说一下Vue框架:Vue是渐进式,JavaScript框架.很多人不理解什么是渐进式,简单点讲就是易用.灵活.高效(没有太多限制) 这里介绍npm安装方式: 打开cmd,找到你Vue项目的路径 运行 npm i element-ui -S 然后在main.js里写入以下内容: import Vue from 'vue'; import ElementUI from 'element-ui'; import 'element-ui/lib/

vue框架开发出现白屏的解决方法汇总

利用vue框架写一个简单的新闻客户端,修改了部分配置重启项目后发现又白屏的情况.特此做个简单的汇总. 1.npm run build打包页面空白 发现页面head中引用的js和css文件是出现了路径错误,这里修改如下: 解决位置:config/index.js文件:把assetsPublicPath: '/'改为assetsPublicPath: './' 2. iOS的Safari下无法打开网页 webpack-dev-server >= 2.8.0 的版本在 iOS Safari 下无法打开

基于Vue框架开发的仿饿了么前端小应用

主要使用vue框架进行开发.使用最新的框架版本,修正了vue1.0到vue2.0过度过程出现的几处bug. 视频教程则是黄轶老师的<vuejs高仿饿了么APP>. 源代码地址:https://github.com/waihoyu/sell 原文地址:https://www.cnblogs.com/waihoyu/p/9350175.html

Vue框架核心之数据劫持

本文来自网易云社区. 前瞻 当前前端界空前繁荣,各种框架横空出世,包括各类mvvm框架横行霸道,比如Angular.Regular.Vue.React等等,它们最大的优点就是可以实现数据绑定,再也不需要手动进行DOM操作了,它们实现的原理也基本上是脏检查或数据劫持.那么本文就以Vue框架出发,探索作者运用Object.defineProperty来实现数据劫持的奥秘(本文所选取的相关代码源自于Vue v2.0.3版本的源码). 回顾一下Object.defineProperty 语法  Obje