单文件组件与Vue中的路由

图片.png

上面截图是src目录中的main.js文件;

图片.png

上图是目录中的index.html文件。

打开src目录中的main.js,这是项目的入口文件,这其中 new Vue()是定义了一个根实例,其中el:'#app',可以知道这个根实例挂载到一个id=app的一个元素上,这时打开整个目录中的index.html文件,body标签中的id就是app,即main.js中的挂载点指的就是index.html 中的id=app的div元素。
main.js的根实例中,有一个components:{App},这是一种es6的写法(键值一样的话,只需要写一个就可以了),花括号内其实省略写了“:App”,不简写的形式是这样的:components:{App:App},后一个App意思是我在我的项目里用了一个局部组件,名字叫App,前一个App的意思是取名根实例的名字叫APP(即 var App = new Vue({})。
template模板中的意思是直接把App这个组件给渲染出来。
现在来看根实例是怎么把局部组件App给渲染出来的。先来看下局部组件App的位置。main.js文件的上面有import App from './App'代码,import后面的App指的就是局部组件App,from后面的App意思是是从当前这个目录(现指的就是src目录)中的App导入进来的,这个App中没有跟任何的后缀,但是webpack虽然看到没有后缀,但是它会帮助从一些后缀当中选择(比如App.vue,App.js等等会一个个找),例子中是有App.vue文件的。
打开这个App.vue文件,可以看到这个文件是由三部分组成:template、script和style
新增小知识:当文件以.vue结尾的时候,这个文件就叫做单文件组件,实际上里面放的就是vue组件。之前vue组件的写法是vue.component(),括号内添加组件的名字,模板逻辑等等。现在使用单文件组件的话,组件和以前定义就不一样了。现在的如下图:


图片.png

模板放在template标签中,逻辑放在script标签中,组件的CSS样式放在style标签中,
这个App.vue中的内容就是浏览器网页中所要显示的内容(打开运行-cmd,来到当前代码所在的位置,运行npm run dev,启动这个代码):style标签中显示的是CSS内容,即内容的样式。template标签中显示logo还有一个路由器标签。
现在着重了解路由器
路由就是:根据网址的不同,返回不同的内容给用户。
到页面上的表现就是:访问的是根路径的时候,返回的就是这个页面:


图片.png

路由的意思就是,如果我给别的网址,比如在现有的这个网址的后面添加东西,比如list,让其成为一个新的网址,那么页面显示的内容也将变成新的内容。
回到页面上,页面上的样式是来自于App中的style标签中的内容,logo来自template标签,那么页面中所剩下的文字来自哪里?
答案是来自router-view/标签。如果将这一标签删除,可以看到网页中是显示不出来文字的。
那么router-view标签显示的是什么呢?显示的是当前路由地址所对应的内容。
当前路由地址是网页中显示的网址,那么为什么这个网址就是对应的是显示的这个内容呢?
在main.js这个文件中,import引入了router路由,在根实例中引用了这个router路由,即“router,”。(这其中也是和刚才一样,用了es6简写,如果不简写的话是router:router。)
那么这个router文件在哪里?在当前目录下router这个文件夹下,然后vue会自动引入router这个文件夹下的文件,即index.js这个文件。

打开index.js文件,可以看到导出的文件是什么,即export中的内容,这个内容就是一组配置项:


图片.png

在路由里面做了这样的配置:
当访问根路径的时候(即path:'/',),根路径这个路由对应的内容是什么?是component:HelloWorld,helloworld在哪里,从上面的import中可以看到,helloworld在components上,@符的意思是在src这个目录。连起来的意思就是在src目录上找到了components这个文件夹,这个文件夹里面有一个文件是HelloWorld,打开后可以看到这个文件是HelloWorld.vue,这也是一个单文件组件。
现在的路由配置,可以这样翻译:
当访问根路径的时候,页面展示的是HelloWorld组件;因为在App.vue中router-view展示的是当前路由地址所对应的内容,也就是路由配置中component的HelloWorld。
所以我可以提供另一个路径,当访问另一个路径的时候,页面来显示另一个内容:
我们在src目录下添加list文件夹,list文件夹内添加文件list.vue,在这个文件内写入我想增加的内容:
图片.png

将这个文件的内容连接到路由文件夹router的index.js中,通过在index.js中添加import,然后在下面的export的routes中添加新的配置路径,这个配置就将路径/list和局部组件List联系到了一起:
图片.png

这样在页面上通过写不同的路径,就可以显示不同的网页内容了:
当输入localhost:8080的时候,显示的是这样的内容:
图片.png

当在网址末尾加入list的时候,网页显示的是另外的内容:
图片.png

这就是app.vue文件中的router-view标签的功能:当前路由地址所对应的内容。即输入不同的地址,可以显示不同的内容

我在实际操作的时候,碰到的一个插曲问题:
当我增加了一个路由配置的时候,所有的东西都处理好了,当我打开页面的时候,在网址中输入/list网址时,网页是无法显示对应的内容的。花了很长时间,发现我用的是上次关机前用的浏览器网页,这次我处理代码的时候我没有运行cmd命令提示符,没有在对应的文件夹输入npm run dev,以致没有使项目启动。当我改正后,这样启动项目的时候,又出现了新问题:无法启动。当我把所有新添加的list等等内容都删除后,留有最一开始的vue-cli代码,这样才可以启动项目,启动项目之后再添加新的list配置项,就可以显示出我要的这个效果了,即输入不同的网址,会显示出不同的内容。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容