基于Vue2.0+Vue-router构建一个简单的单页应用
爱编程爱分享,原创文章,转载请注明出处,谢谢! 一、介绍 vue.js 是 目前 最火的前端框架,vue.js 兼具 angular.js 和 react.js 的优点,并剔除它们的缺点
的周边配套工具 如vue-router 、vue-resource 、vuex等等 ?
通过他们我们可以很轻松的构建一个大型单页应用
二、环境搭建 我们使用vue-cli脚手架工具构建 #安装 vue-cli npm install -g vue-cli 使用vue-cli初始化项目 vue init webpack?vue-vuerouter-demo 进到目录 cd? 安装依赖 ?? npm install 开始运行 ? npm run dev 浏览器访问http://localhost:8080 构建完成之后基本目录结构如下: 流程说明: 1、首先会打开首页 也就是我们看到的index.html文件 2、使用webpack打包之后默认加载main.js文件并将其引入到index.html文件中? 三、开发 我们在main.js文件中引入相关模块以及组件 import Vue from 'vue''./App''./router'
<span style="color: #008000">// <span style="color: #008000"> 引入并使用vue-resource网络请求模块import VueResource from 'vue-resource'<span style="color: #000000"> Vue.use(VueResource) 实例化vue对象配置选项路由及渲染App组件 '#app',
=><span style="color: #008000">//<span style="color: #008000"> 这里的render: h => h(App)是es6的写法
<span style="color: #008000">//<span style="color: #008000"> 转换过来就是: 暂且可理解为是渲染App组件 <span style="color: #008000">//<span style="color: #008000"> render:(function(h){ <span style="color: #008000">//<span style="color: #008000"> return h(App); <span style="color: #008000">//<span style="color: #008000"> }); <span style="color: #000000"> }) App.vue文件是我们的组件入口,之后所有的开发在这里面进行
默认会被渲染成一个 `` 标签
<Home
<About
?
<span style="color: #0000ff">< <span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000"> import Hello from './components/Hello' <span style="background-color: #f5f5f5; color: #000000"> export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> { name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">app<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,components: { <span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000"> Hello <span style="background-color: #f5f5f5; color: #000000"> } } <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">> <span style="color: #0000ff">< <span style="color: #800000">style<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">body<span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000"> background-color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> #f8f8ff<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> font-family<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 'Avenir',sans-serif<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> #2c3e50<span style="background-color: #f5f5f5; color: #000000">; <span style="background-color: #f5f5f5; color: #000000">}<span style="background-color: #f5f5f5; color: #800000"> .nav <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">position<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> fixed<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> width<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 108px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> left<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 40px<span style="background-color: #f5f5f5; color: #000000">; <span style="background-color: #f5f5f5; color: #000000">}<span style="background-color: #f5f5f5; color: #800000"> .nav ul<span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000"> list-style<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> none<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> margin<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 0<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> padding<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 0<span style="background-color: #f5f5f5; color: #000000">; <span style="background-color: #f5f5f5; color: #000000">}<span style="background-color: #f5f5f5; color: #800000"> .nav ul li<span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000"> width<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 108px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> height<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 48px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> line-height<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 48px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> border<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff">1px solid #dadada<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000"> text-align<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> center<span style="background-color: #f5f5f5; color: #000000">; <span style="background-color: #f5f5f5; color: #000000">}<span style="background-color: #f5f5f5; color: #800000"> .nav ul li a<span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000"> text-decoration<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> none<span style="background-color: #f5f5f5; color: #000000">; <span style="background-color: #f5f5f5; color: #000000">}<span style="background-color: #f5f5f5; color: #800000"> .main<span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000"> <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">> 要使用路由我们首先要在router/index.js文件中创建路由并配置路由映射 ,并通过export输出router到main.js文件中 <span style="color: #008000">// <span style="color: #008000"> 引入路由模块并使用它import Vue from 'vue'<span style="color: #000000"> import VueRouter from 'vue-router'<span style="color: #000000"> Vue.use(VueRouter) <span style="color: #008000">//<span style="color: #008000"> 创建路由实例并配置路由映射 <span style="color: #008000"> <span style="color: #008000">//<span style="color: #008000"> 输出router 上面配置了2个组件映射 分别Hme.vue组件和About组件,配置好之后我们就可以开始使用路由了
默认会被渲染成一个 `` 标签
<Home
<About
点击home和about导航会映射到对应的组件,然后将组件渲染在这里面 到此,整个流程我们已经走通了。 接下来我们使用vue-resource网络插件动态加载数据并显示出来 1、先在main.js文件中引入并使用vue-resource网络请求模块 import VueResource from 'vue-resource'
2、创建Home.vue组件 我们需要在created钩子函数中去请求网络,这里我们使用豆瓣的API去请求电影列表数据,请求成功之后我们将其数据显示到页面中 <div class="cnblogs_code"> {{ msg }} 3、最后我们运行npm run dev命令查看页面显示效果 OK,可以看到我们的数据成功加载出来了,可以点击左侧的导航来进行导航内容切换 代码我已经上传到github上面去了,想看的童鞋去上面看,喜欢的话可以给个Star哦~ Github地址 https://github.com/fozero/vue-vuerouter-demo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – 什么是“operator int&(){return i; “在代码中做
- 感觉cocos的定时器不好用, 自已封装了一个
- React Native:target has has hash string’android-X’no
- Oracle - start with connect by 树操作
- c# – 如何在viewmodel(MVVM Model)wpf应用程序中使用命令行
- 安装和配置机房收费系统
- xml – 错误:未绑定属性“xsi:schemaLocation”的前缀“x
- 看到两个很棒的东西 - PostgreSQL & Doctrine
- Oracle11g监听器日志 listener.log文件过大处理
- react-native 错误记录