接下来我们要做的是vue的路由处理,首先当然是安装:

npm install vue-router

接下打开我们的main.js,引入我们vue-router,然后在告诉vue我们要使用我们的vue-router

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App' Vue.use(VueRouter) /* eslint-disable no-new */
new Vue({
el: '#app',
template: '<App/>',
components: { App }
})

接下来我们开始使用,比如我们的首页我们是用我们的todo-items这个组件来处理

const routes=[
{path:'/',component:todoItems},
]

那么我们当然也要把它引用进来

import todoItem from './components/Todo-items'

接下来我们还要做一件事情就是访问一个todo跟上一个id

const routes=[
{path:'/',component:todoItem},
{path:'/todo/:id',component:Todo}
]

但是我们并没有todo这个组件所以创建一个toto的组件

<template>

</template>

<script>
export default {
data () {
return {
}
},
}
</script>

在main.js中也是要引用进来的

import Todo from './components/todo'

然后实例化我们的router

const router = new VueRouter({
routes
})

但是我们还要告诉的们vue我们要把router传递进去的

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App'
import todoItem from './components/Todo-items'
import Todo from './components/todo' Vue.use(VueRouter) const routes=[
{path:'/',component:todoItem},
{path:'/todo/:id',component:Todo,name:'todo'}
] const router = new VueRouter({
routes
})
/* eslint-disable no-new */
new Vue({
el: '#app',
template: '<App/>',
components: { App },
router
})

然后我们的视图内容交给我们router来处理,也就是我们在app.vue中的组件引用那块,不直接渲染

<template>
<div id="app">
<img src="./assets/logo.png">
<!-- <hello></hello> -->
<!-- <todo-item :todos="todos"></todo-item>
<todo-form :todos="todos"></todo-form> -->
<router-view :todos="todos"></router-view>
</div>
</template> <script>
import Hello from './components/Hello'
// import todoForm from './components/todo-form'
// import todoItem from './components/Todo-items' export default {
name: 'app',
data(){
return{
message:'this is todos',
todos:[
{id:1,title:"learn vuejs",completed:false},
],
}
},
computed:{
todoCount(){
return this.todos.length;
}
},
components: {
Hello
}
}
</script> <style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

但是这个时候我们的form并没有显示,那么我们就在首页的todoItem中引用这个子组件,script里面的代码

<script>

import todoForm from './todo-form'

export default {
name:'todos',
props:['todos'],
data(){
return {
newTodo:{id:null,title:"",completed:false}
}//定义一个obj;
},
props:['todos'],
methods:{
deleteTodo(index){
this.todos.splice(index,1);//删除下标为index的元素
},
toggleCompletion(todo){
todo.completed = !todo.completed;
}
},
components: {
todoForm
}
}
</script>

当然也要在template中引用这个组件

<template>
<div id="todos">
<ul class="list-group">
<li class="list-group-item" v-for="(todo,index) in todos" v-bind:class="{'completed' : todo.completed}">
<router-link :to="{ name: 'todo', params: { id:todo.id }}">{{todo.title}} </router-link>
<button class="btn btn-warning btn-xs pull-right" v-on:click="deleteTodo(index)">Delete</button>
<button class="btn btn-xs pull-right margin-right-10" v-on:click="toggleCompletion(todo)" v-bind:class="[todo.completed ? 'btn-success' : 'btn-danger']">{{todo.completed ? 'completed' : 'working'}}</button>
</li>
</ul> <todo-form :todos="todos"></todo-form>
</div>
</template> <script> import todoForm from './todo-form' export default {
name:'todos',
props:['todos'],
data(){
return {
newTodo:{id:null,title:"",completed:false}
}//定义一个obj;
},
props:['todos'],
methods:{
deleteTodo(index){
this.todos.splice(index,1);//删除下标为index的元素
},
toggleCompletion(todo){
todo.completed = !todo.completed;
}
},
components: {
todoForm
}
}
</script> <style>
.completed{
color: green;
font-style: italic;
}
.margin-right-10{
margin-right: 10px;
}
</style>

vuejs,router的更多相关文章

  1. weex官方demo weex-hackernews代码解读(下)

    weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.而weex-hacknews则是weex官方出品的,首个使用 Weex 和 Vu ...

  2. 【vuejs小项目——vuejs2.0版本】单页面搭建

    http://router.vuejs.org/zh-cn/essentials/nested-routes.html 使用嵌套路由开发,这里会出错主要把Vue.use(VueRouter);要进行引 ...

  3. Vuejs使用笔记 --- 框架

    这两天学了vuejs的模板,于此纪录一下. 这是整个大文件夹的配置,现在我们看到的所有文件都不需要去管,说要关注也只需要关注“index.html” "index.html"里面是 ...

  4. VueJs一些资料网站链接

    https://github.com/liukaijv/laravel-vue-cmshttps://github.com/allan2coder/VUE2-SPA-Tutorialhttps://g ...

  5. VueJs开发笔记—IDE选择和WebStorm性能优化、框架特性和数据调用、路由选项以及使用

    一.IDE的选择: VsCode和WebStorm都是不错的选择,两者运行调试都非常的方便都可以使用快捷键运行和停止,就打开项目的速度和对电脑配置的要求来说,vscode要比webstorm要出色很多 ...

  6. Vuejs实例-01使用vue-cli脚手架搭建Vue.js项目

    [TOC] 1. 前言 vue-cli 一个简单的构建Vue.js项目的命令行界面 整体过程: $ npm install -g vue-cli $ vue init webpack vue-admi ...

  7. vue初级学习--路由router的编写(resolve的使用)

    一.导语 最近在用vue仿写淘宝的商品详情页面以及加入购物车页面,若是成功了,分享给大家~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 二.正文 我先用控制台创建了vue项目demo(如 ...

  8. 三、VueJs 填坑日记之项目文件认识

    上一篇博文,我们搭建了一套基础的vuejs的环境,首先安装node.js,然后利用npm包管理器,安装vue-cli,设置淘宝镜像,初始化项目,安装依赖,运行.在这一篇,我们将认识vuejs项目里的各 ...

  9. 七、VueJs 填坑日记之渲染一个列表

    在上一篇博文中,我们对vue组件有了一个简单的认识和大概的理解.在之前认识项目结构的时候,我们在/src目录中创建了一个components的文件夹,而今天就要用到了,这个文件夹的作用就是放置我们的自 ...

随机推荐

  1. C# 文件选择对话框,Unity3d文件保存对话框

    using OpenWinForm = System.Windows.Forms; 在unity3d中,使用FileDialog应该把System.Windows.Forms.dll拷贝到unity工 ...

  2. js 关键字和保留字

    不能把关键字.保留字.true.false和null用作标识符. js中的关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等.按照规则,关键字也是语言保留的,不能用作标识符.以下就是ECMA ...

  3. 一款基于bootstrap的datetimepicker

    <!DOCTYPE HTML> <html> <head> <link href="http://netdna.bootstrapcdn.com/t ...

  4. 回文数组(Rotate Array (JS))

    旋转一个数组. function rotate(array,n){ var l =array.length,a=array.map(function(x){return x}),arr=[]; n=n ...

  5. java生成二维码(需导入第三方ZXing.jar包)

    //这个类是用来解析,通过图片解析该图片的网页链接是什么 package util; import java.awt.Graphics2D;import java.awt.geom.AffineTra ...

  6. 自定义AlertDialog的样式

    一.在XML中定义好要显示的AlertDialog的布局 二.在代码中创建alertdialog 对象 AlertDialog dialog = new AlertDialog.Builder(thi ...

  7. OGRE 1.9 的第一个程序(OGRE HelloWorld程序)

    平台:win7, VS2010 先看运行结果吧: 1. 安装OGRE 下载OGRE SDK 1.9,解压,放在你喜欢的地方,在OGRE SDK文件加下创建“OGRE_HOME.bat.bat”文本文件 ...

  8. java单例-积木系列

    一步步知识点归纳吧,把以前似懂非懂,了解表面,知道点不知道面的知识归一下档.   懒汉式单例: 私有化构造函数,阻止外界实例话对象,调用getInstance静态方法,判断是否已经实例化. 为什么是懒 ...

  9. CLR via C# 3rd - 02 - Building, Packaging, Deploying, and Administering Applications and Types

    1. C# Compiler - CSC.exe            csc.exe /out:Program.exe /t:exe /r:MSCorLib.dll Program.cs       ...

  10. 解决href标签跳转到WEB-INF下的jsp页面的办法

    用的配置struts的action的方法. jsp页面这样写的. class里面的路径是下面的struts配置文件的路径 struts配置文件里这样写的. name里面的内容要和href里面的内用一致 ...