VUE.js快速入门(vue网络应用①)

Vue结合网络数据开发应用

axios:功能强大的网路请求库,异步请求

引入:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
语法:
axios.get(address?key=value&key2=value).then(function(resopnse){},function(err){})

axios.post(address,key:value&key2:value).then(function(resopnse){},function(err){})

then方法会在请求成功或者失败的时候触发

通过回调函数形参知道相应内容

axios中回调的this已经发生改变,无法访问到外部,直接使用this不是一个,需要临时存储。

Vue中路由(VueRouter)

按照一定请求规则显示组件,

引入:

<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- 路由组件 -->
        <router-view></router-view>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    <script>
        //使用const定义常量
        const login={
            template:`<h1>login</h1>`
        };
        const register={
            template:`<h1>register</h1>`
        };
        //创建路由对象,绑定常量模板
        const router=new VueRouter({
            routes:[
                {path:"/login",component:login},
                {path:"/register",component:register}
            ]
        });
        const app=new Vue({
            el:"#app",
            data:{

            },
            methods:{},
            //vue实例和router产生关系
            router:router
        })

    </script>

</body>
</html>

 

 路由绑定不同的组件,这里注册的不是组件,注册的是路由,路由绑定组件,组件是不易变得使用const定义。

 router-link用来切换路由,tag标签能切换类型

        <router-link to="/login">登录</router-link>
        <router-link to="/register">注册</router-link>

默认路由就是写在路由组件

{path:"/",component:login},
//重定向
{path:"/",redirect:"/login"},

路由中参数的传递传统方式

通过?传递参数

<router-link to="/login?id=1&name=22">登录</router-link>

接受:

  const login={
            template:`<h1>login</h1>`,
            created(){
                console.log(this.$route.query.id);
            },
        };

 使用restful方式获取id,name

    <router-link to="/register/11/liming">注册</router-link>
           {path:"/",redirect:"/login"},
                {path:"/login",component:login},
                {path:"/register/:id/:name",component:register}
        const register={
            template:`<h1>register{{this.$route.params.id}}{{this.$route.params.name}}</h1>`
        };

 路由的嵌套

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <router-link to="/product">商品管理</router-link>
        <router-view></router-view>
    </div>
    <template id="product">
        <div>
            <h1>商品管理</h1>
            <router-link to="/product/add">商品添加</router-link>
            <router-link to="/product/remove">商品删除</router-link>
            <router-view></router-view>
        </div>
    </template>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    <script>
        const product={
            template:`#product`
        };
        const productAdd={
            template:`<h1>商品添加</h1>`
        };
        const productRemove={
            template:`<h1>商品删除</h1>`
        };
        //自定义路由
        const route=new VueRouter({
            routes:[
                {
                    path:'/product',
                    component:product,
                    children:[
                        {path:"add",component:productAdd},
                        {path:"remove",component:productRemove}
                    ]
                },

            ]
        });
        const vm=new Vue({
            el:"#app",
            router:route
        });
    </script>
</body>
</html>

原文地址:https://www.cnblogs.com/liuyang95/p/12994460.html