当前位置: 首页 > 编程日记 > 正文

vue-cli脚手架(框架)

一、创建vue项目

npm install vue-cli -g   #-g全局
(sudo)npm install vue-cli -g   #mac笔记本vue-init webpack myvue  #项目的名字
cd muvue
npm install
npm run dev

二、目录结构的说明

出现下面这样的图就说明成功了

三、import和require的区别

import一定要放在文件顶部,他相当于一个指针引用了文件,并没有吧文件包含进来,需要调用文件时才引入
require可以吧文件放在任何位置,他是吧文件直接包含进来

四、设置文件路径的流程

1)建立组件(.vue的文件)
2)配置路由(index.js文件中配置)
3)<router-link></router-link>
4)<router-view></router-view>
5)import 包名 from "组件路径"
6)comonents进行注册

五、实现异步加载

//异步
vue-resource:实现异步加载数据(已经弃用)
axios:实现异步加载数据
npm install axios --save-dev
npm install vue-axios --save-dev

六、VUE的生命周期

1、定义vue对象并实例化
2、执行created函数
3、编译模板,只会编译template的模板
4、吧HTML元素渲染到页面当中
5、执行mounted函数,(加载)相当于onload
6、如果有元素的更新,就执行update函数
7、销毁实例

六、项目实战

仿抽屉网站

ALL.vue

 1 <template>
 2   <div class='box'>
 3     <ul>
 4       <li v-for='item in arr'>
 5         <div class='p1'>
 6           <router-link :to="{path:'/detail',query:{ids:item.id}}">{{item.content}} </router-link>
 7         </div>
 8         <div class="p2">
 9           <img :src="item.imgUrl">
10         </div>
11       </li>
12 
13     </ul>
14 
15   </div>
16 </template>
17 
18 <script>
19   export default {
20     name: 'HelloWorld',
21     data () {
22       return {
23         arr: []
24       }
25     },
26     mounted () {
27       var url = '../../static/news.json'
28       var self=this;
29       this.$axios.get(url)
30         .then(function (response) {
31           console.log(response.data.result.data);
32           self.arr = response.data.result.data;
33         })
34         .catch(function (error) {
35           console.log(error);
36         })
37     }
38   }
39 </script>
40 
41 <!-- Add "scoped" attribute to limit CSS to this component only -->
42 <style scoped>
43   h1, h2 {
44     font-weight: normal;
45   }
46 
47   ul {
48     list-style-type: none;
49     padding: 0;
50   }
51 
52   li {
53     display: inline-block;
54     margin: 0 10px;
55   }
56 
57   a {
58     color: #42b983;
59   }
60 .box{
61   width: 980px;
62 }
63 .p1{
64   float:left;
65   width:780px;
66 }
67  img{
68   float:right;
69  }
70 </style>
View Code

DETAIL.vue

 1 <template>
 2   <div class="box">
 3     <h1>我是详细页面{{id}}</h1>
 4     <ul>
 5       <li>
 6         <div class="p1">
 7           {{obj.content}}
 8         </div>
 9         <div class="p2">
10           <img :src="obj.imgUrl">
11         </div>
12 
13       </li>
14     </ul>
15   </div>
16 </template>
17 
18 <script>
19   export default {
20     name: 'Detail',
21     data () {
22       return {
23           obj:{} ,
24           id:this.$route.query.ids
25       }
26     },
27     mounted(){
28       var url = "../../static/news.json"
29       var self =this;
30       this.$axios.get(url,{
31           params:{id:this.id}
32       })
33         .then(function (response) {
34           //console.log(response.data.result.data);
35           self.obj = response.data.result.data[0];
36         })
37         .catch(function (error) {
38           console.log(error);
39         })
40     }
41   }
42 </script>
43 
44 <!-- Add "scoped" attribute to limit CSS to this component only -->
45 <style scoped>
46   h1, h2 {
47     font-weight: normal;
48   }
49 
50   ul {
51     list-style-type: none;
52     padding: 0;
53   }
54 
55   li {
56     display: inline-block;
57     margin: 0 10px;
58   }
59 
60   a {
61     color: #42b983;
62   }
63   .box{
64     width: 980px;
65   }
66 
67   .p1{
68     float:left;
69     width:700px;
70   }
71   .p2{
72     float:right;
73   }
74 </style>
View Code

DUANZI.vue

 1 <template>
 2   <div>
 3     <h1> 我是段子手</h1>
 4   </div>
 5 </template>
 6 
 7 <script>
 8 export default {
 9   name: 'HelloWorld',
10   data () {
11     return {
12 
13     }
14   }
15 }
16 </script>
17 
18 <!-- Add "scoped" attribute to limit CSS to this component only -->
19 <style scoped>
20 h1, h2 {
21   font-weight: normal;
22 }
23 ul {
24   list-style-type: none;
25   padding: 0;
26 }
27 li {
28   display: inline-block;
29   margin: 0 10px;
30 }
31 a {
32   color: #42b983;
33 }
34 </style>
View Code

NaveList.vue

 1 <template>
 2   <div>
 3     <router-link to="/">首页</router-link>
 4     <router-link to="/news">新闻</router-link>
 5     <router-link to="/duanzi">段子</router-link>
 6   </div>
 7 </template>
 8 
 9 <script>
10 export default {
11   name: 'HelloWorld',
12   data () {
13     return {
14 
15     }
16   }
17 }
18 </script>
19 
20 <!-- Add "scoped" attribute to limit CSS to this component only -->
21 <style scoped>
22 h1, h2 {
23   font-weight: normal;
24 }
25 ul {
26   list-style-type: none;
27   padding: 0;
28 }
29 li {
30   display: inline-block;
31   margin: 0 10px;
32 }
33 a {
34   color: #42b983;
35 }
36 </style>
View Code

NEWS.vue

 1 <template>
 2   <div>
 3     <h1> 我是新闻</h1>
 4 
 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: 'HelloWorld',
11   data () {
12     return {
13 
14     }
15   }
16 }
17 </script>
18 
19 <!-- Add "scoped" attribute to limit CSS to this component only -->
20 <style scoped>
21 h1, h2 {
22   font-weight: normal;
23 }
24 ul {
25   list-style-type: none;
26   padding: 0;
27 }
28 li {
29   display: inline-block;
30   margin: 0 10px;
31 }
32 a {
33   color: #42b983;
34 }
35 </style>
View Code

index.js

 1 import Vue from 'vue'
 2 import Router from 'vue-router'
 3 import HelloWorld from '@/components/HelloWorld'
 4 import ALL from '@/components/All'
 5 import NEWS from '@/components/NEWS'
 6 import DUANZI from '@/components/duanzi'
 7 import Detail from '@/components/Detail'
 8 
 9 Vue.use(Router)
10 
11 export default new Router({
12   routes: [
13     {
14       path: '/hw',
15       name: 'HelloWorld',
16       component: HelloWorld
17     },
18     {
19       path: '/',
20       name: 'ALL',
21       component: ALL
22     },
23     {
24       path: '/news',
25       name: 'NEWS',
26       component: NEWS
27     },
28     {
29       path: '/duanzi',
30       name: 'duanzi',
31       component: DUANZI
32     },
33     {
34       path: '/detail',
35       name: 'Detail',
36       component: Detail
37     },
38 
39 
40   ]
41 })
View Code

App.vue

 1 <template>
 2   <div id="app">
 3   <NavList></NavList>
 4     <router-view></router-view>
 5   </div>
 6 </template>
 7 
 8 <script>
 9 import NavList from './components/NavList'
10 export default {
11   name: 'App',
12   components: {NavList}
13 }
14 </script>
15 
16 <style>
17 #app {
18   font-family: 'Avenir', Helvetica, Arial, sans-serif;
19   -webkit-font-smoothing: antialiased;
20   -moz-osx-font-smoothing: grayscale;
21   text-align: center;
22   color: #2c3e50;
23   margin-top: 60px;
24 }
25 </style>
View Code

main.js

 1 // The Vue build version to load with the `import` command
 2 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 3 import Vue from 'vue'
 4 import App from './App'
 5 import router from './router'
 6 import axios from 'axios'
 7 import VueAxios from 'vue-axios'
 8 
 9 Vue.prototype.$axios = axios;
10 
11 //Vue.use(axios, VueAxios)
12 //Vue.config.productionTip = false
13 
14 /* eslint-disable no-new */
15 new Vue({
16   el: '#app',
17   router,
18   components: { App },
19   template: '<App/>'
20 })
View Code

项目需要注意的问题

问题一:在手动执行webpack app/a.js publicndle.js打包时出错的解决方法需要修改为: require("style-loader!css-loader!./style.css")
问题2:脚手架生成项目后,运行 npm run dev启动项目后,
             如果想把地址栏中的  #去掉,如:http://localhost:8080/#/news,需要在
             router文件夹下的index.js文件中,加入 mode: "history"

问题三:引入axios的2种方法:
    需要在main.js中进行设置:这2种方法都可以,但引用顺序不能翻转。

转载于:https://www.cnblogs.com/Roc-Atlantis/p/9693609.html

相关文章:

poj 1679 次小生成树

次小生成树的求法: 1.Prime法 定义一个二维数组F[i][j]表示点i到点j在最小生成树中的路径上的最大权值。有个知识就是将一条不在最小生成树中的边Edge加入最小生成树时&#xff0c;树中要去掉的边就是Edge连接的两个端点i,j的F[i][j]。这样就能保存找到的生成树时次小生成树。 …

mysql金库模式_Python vault-anyconfig包_程序模块 - PyPI - Python中文网

vaultanyconfig" rel"nofollow">使用加载和转储功能扩展hvac hashicorp vault客户端任何配置。这允许自动混合来自保险库的机密&#xff0c;允许您存储配置填充了所有详细信息的文件保存为机密&#xff0c;然后访问hashicorp保险库将机密加载到内存字典中。支…

awk3.0 — awk变量

awk有一些内置变量和外置变量&#xff0c;内置变量就是awk自带的变量&#xff0c;用户可以拿来直接使用&#xff0c;如FS&#xff0c;OFS等 awk常用内置变量如下几种&#xff1a; FS&#xff1a;输入单词分隔符&#xff0c;默认是空格 OFS&#xff1a;输出单词分隔…

关于yum库的相关问题

局域网共享yum库的两种方式&#xff1a; 一种是基于HTTP的&#xff0c;需要配置httpd。 一种是基于FTP的。需要FTP的支持。 具体设置参数可参照网上的相关教程。 yum库的建立主要涉及到两点&#xff1a; 1、 Yum服务器安装createrepo并创建仓库 2、 安装完成之后&#xff0c;在…

[ JSOI 2015 ] Salesman

\(\\\) \(Description\) 给出一棵以\(1\)为根的\(N\)个节点的树&#xff0c;开始的时候你在\(1\)号节点。 除了\(1\)号节点以外&#xff0c;每个点都有访问次数限制\(t_i\)&#xff0c;即到达该点的次数上限。 除了\(1\)号点每个点还有一个权值\(w_i\)&#xff0c;这个权值可以…

linux安装python2和3版本_Windows下安装Python2和Python3双版本

现在大家常用的桌面操作系统有&#xff1a;Windows、Mac OS、Ubuntu&#xff0c;其中Mac OS 和 ubuntu上都会自带Python。这里我们只介绍下Windows(我用的Win10)环境下的python2.x 和 python3.x 的安装&#xff0c;以及python2.x 与 python3.x 共存时的配置问题。本节内容pytho…

JS+CSS点击弹出登陆框代码

<head><meta http-equiv"Content-Type" content"text/html; charsetgb2312"><title>弹出登录框的实现代码</title></head><body><style type"text/css">body {margin: 0px;padding:0}#div1 {display:…

awk4.0 — awk格式化

awk格式化使用printf函数&#xff0c;类似于C语言中的printf函数 比如 awk {printf "%s\n", $1} test1 上面的方式是awk每次处理一行&#xff0c;然后进行替换的&#xff0c;如果我们想要传入多个参数&#xff0c;此时就需要多个格式化

在LinearLayout中嵌套RelativeLayout来设置Button的位置(xml文件)

想将Button和ListView分别放在屏幕的一左一右。 单纯使用android:gravity和android:layout_gravity不成功。 于是涉及到RelativeLayout 关键为&#xff1a;android:layout_alignParentRight"true" android:layout_alignParentLeft"true" <?xml versio…

Scrapy爬虫-必备插件

必备插件&#xff1a; lxml, an efficient XML and HTML parser parsel, an HTML/XML data extraction library written on top of lxml w3lib, a multi-purpose helper for dealing with URLs and web page encodings twisted, an asynchronous networking framework https://…

python类和对象课件_简单解释Python的类和对象

前言&#xff1a;对象是模拟真实世界&#xff0c;把数据和程序进行封装 。对象 属性 方法我们需要用类来创造一个对象&#xff0c;就像我们要用图纸来造房子一样。在Python中函数名是以小写字母开头 &#xff0c;类名是以大写字母开头。0x00:面向对象(Object Oriented)我们一般…

awk5.0 — awk模式之一

再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… awk模式&#xff0c;在之前的文章中简单使用了BEGIN和END。这里的模式&#xff0c;其实我们可以理解成是条件&#xff0c;awk是一行行处理数据的&#xff0c;如果满足某个条件awk就处理某一行数据&#x…

CF331A1,331A2

链接&#xff1a;http://codeforces.com/problemset/problem/331/A1 题意&#xff1a;不翻译了。 思路&#xff1a;A1题数据范围小&#xff0c;暴力是可行的&#xff0c;我果断暴力了。不过&#xff0c;话说&#xff0c;除了暴力我还会什么。。。闲话少说。A2的话&#xff0c;采…

SCCM 2012系列9 补丁分发上

HI&#xff0c;今天我会给大家介绍SCCM 2012的补丁分发&#xff0c;分为上中下&#xff0c;当然希望大家多多指教哦 1 服务器配置 1.1 环境要求 如果SCCM和WSUS在同一台服务器上那没什么&#xff0c;但如果WSUS和SCCM分别在不同的服务器上&#xff0c;那么WSUS服务器需要把S…

python基础-垃圾回收机制

垃圾回收 Python中的垃圾回收是以引用计数为主&#xff0c;分代收集为辅。引用计数的缺陷是循环引用的问题。 引用计数 原理&#xff1a;当一个对象的引用被创建或者复制时&#xff0c;对象的引用计数加1&#xff1b;当一个对象的引用被销毁时&#xff0c;对象的引用计数减1&am…

awk 6.0 — awk模式之二

awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… 之前介绍了三种模式&#xff1a;空模式&#xff0c;关系运算模式&#xff0c;BEGIN/END模式 正则模式 模式可以理解成条件&#xff0c;正则模式就是满足正则表达式条件的&#xff0c;就执行相应的动作&#xf…

根据搜索来路 弹出相应广告

根据搜索来路 弹出相应广告 以下是一段php判断搜索引擎的代码 <?PHP $referer $_SERVER[HTTP_REFERER]; if(!$referer ){ if(ereg(http,$referer)){ $referer eXPlode(.,$referer); if(is_array($referer)){ $referer $referer[1]; if($referer google OR $referer b…

redis mysql查询数据类型_linux 常见的标识与Redis数据库详解

xxxxxx:~$ :第一个 xxx 只的是 用户名第二个 xxx 代表的是 HOST主机~ : 当前用户的根&#xff0c; 根的位置在 /home/用户名$ : 代表当前用户是一个普通用户# : 代表当前用户是超级用户查看当前命令所在的位置pwd文件夹/文件的常见命令mkdirlsrmdirrm创建文件夹mkdirmkdir test…

/etc/hosts/中HOSTNAME错误导致lsnrctl启动错误

系统环境&#xff1a;REDHAT LINUX5.4 ORACLE10.2.0.4&#xff0c;是通过虚拟机复制另外一台数据库系统环境后安装ORACLE获得。故障现象&#xff1a;ORACLE安装正常&#xff0c;本地服务正常&#xff0c;本地数据通过IMP可以正常导入&#xff0c;但是LSNRCTL能够启动&#xff…

16_python_面向对象

一、面向对象和面向过程的区别1、面向对象&#xff1a;一切以对象为中心。有相同属性和动作的结合体叫做对优点&#xff1a;易维护、易复用、易扩展&#xff0c;由于面向对象有封装、继承、多态性的特性&#xff0c;可以设计出低耦合的系统&#xff0c;使系统 更加灵活、更加易…

怎么用canvas画秒针_用canvas画一个钟表

body{background: #000000;}#c1{background: #FFFFFF;}span{color: #FFFFFF;}var oCdocument.getElementById("c1");var oGcoC.getContext(2d);setInterval(function(){ //循环计时器每一秒调用一次&#xff0c;相当于每隔一秒画一次表盘oGc.clearRect(0,0,oC.offset…

每日英语:China's Labor Market Tightens

Job cuts in China appear to be on the rise, dimming prospects for a labor market that has been a resilient bright spot amid a slowdown in the worlds second-largest economy. dimming&#xff1a;调光&#xff1b;变暗    resilient&#xff1a; 弹回的&#xf…

大数据-spark-hbase-hive等学习视频资料

不错的大数据spark学习资料&#xff0c;连接过期在评论区评论&#xff0c;再给你分享 https://pan.baidu.com/s/1ts6RNuFpsnc39tL3jetTkg 转载于:https://www.cnblogs.com/xjh713/p/9704251.html

redis学习 -- 简单动态字符串

Redis没有使用C语言字符串的形式&#xff0c;通过’\0’作为结尾&#xff0c;而是使用了简单动态字符串(simple dynamic string)。 当Redis使用的字符串不需要修改字符串的内容的时候&#xff0c;可以使用C语言提供的字符串&#xff0c;当需要修改内容的时候就使用的是简单动态…

【stanford C++】容器III——Vector类

主要介绍如下5个容器类——Vector&#xff0c; Stack&#xff0c;Queue&#xff0c;Map和Set&#xff0c;各个都表示一重要的抽象数据类型。另外&#xff0c;各个类都是一些简单类型的值的集合&#xff0c;所以称它们为容器类。 暂且我们先不需要知道它们是如何实现的&#xff…

linux编译安装mysql 5.1_linux编译安装mysql5.1.x

安装mysql&#xff0c;安装前准备如果mysql用户不存在&#xff0c;那么添加mysql用户groupadd mysqluseradd -g mysql mysqlmysql编译安装make时间特别长wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.70.tar.gztar -zxvf mysql-5.1.70.tar.gzcd mysql-5.1.70…

Windows PowerShell 批量迁移Windows用户信息

这里说一下我在服务器上本地用户帐号、组的迁移 这里用到的迁移工具是 Windows PowerShell 迁移支持虚拟机和实体机器的迁移&#xff0c;虚拟机和虚拟机的迁移 但是不支持不同语种之间的迁移&#xff0c;比如英语向中文迁移 这里我实验的是虚拟机和虚拟机的迁移 系统是Windows…

css中position的几个值

1. staitic:该值符合文档的初始排版&#xff0c;其中设置的与位置有关的值不起作用。2.relative 该值的偏移量&#xff0c;是在文档初始排版的基础上进行排版&#xff0c;并且覆盖顺序是最新输出的在最上面3.absolute该值元素的定位是以网页文档左上角位基准&#xff0c;并且不…

一个较为详细的ETL系统实现方案

转至&#xff1a;http://www.cognoschina.net/club/viewthread.php?tid5627 1 ETL流程及调度设计&#xff08;ETL Schedule&#xff09;(PSP)1. ETL调度的目标快速见效系统要抽取39家分行四个系统的数据进行加工处理&#xff0c;数据从下传文件到ODS库&#xff0c;ODS库到LDM&…

python与anaconda区别_anaconda和python的区别是什么?

anaconda和python的区别是什么&#xff1f;Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。使用python需要下载安装执行python代码的环境。官方的Python包含了核心的模块和库&#xff0c;为了完成其他任务&#xff0c;需要安装其他的模块和库。Anaconda 是Py…