vue脚手架搭建2022年6月版本(保姆级-直接到路由使用)(2)

简介: vue脚手架搭建2022年6月版本(保姆级-直接到路由使用)(2)

7、安装vue脚手架

运行命令:

npm install vue-cli -g

image.png


由于没有设置环境变量,无法使用。

image.png



添加系统path的环境变量,路径是【C:\Program Files\nodejs\node_global】

image.png



直接添加保存即可。

image.png


8、Vue项目创建

特别备注:项目名称不允许使用数字开头,同时项目命中不允许出现大写字母。


vue init webpack vue01

选择【npm】哦:

image.png



国内镜像还是很快的,才30s

image.png



通过提示的内容启动vue。

cd vue01
npm run dev

image.png




9、项目访问与目录层级介绍

访问路径:【http://localhost:8080】

image.png



恭喜,搭建成功。可以通过【VS Code】打开看看。


image.png


image.png




刚才那句话就是修改了主页面入口的【index.html】文件。


装一个【vetur】插件,显示文本好看。

image.png





10、路由

路由写法:


<!-- 字符串 -->
<router-link to="/home">Home</router-link>
<!-- 渲染结果 -->
<a href="/home">Home</a>
<!-- 使用 v-bind 的 JS 表达式 -->
<router-link :to="'/home'">Home</router-link>
<!-- 使用 v-bind 的 JS 表达式 -->
<router-link :to="{ path: '/home' }">Home</router-link>
<!-- 命名的路由 -->
<router-link :to="{ name: 'user', params: { userId: '9527' }}">User</router-link>
<!-- 有查询参数,下面的结果为 `/register?plan=private` -->
<router-link :to="{ path: '/register', query: { plan: 'private' }}">
  Register
</router-link>

image.png



import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import a from '@/components/a'
import b from '@/components/b'
import c from '@/components/c'
Vue.use(Router)
export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {      path: '/a',      name: 'a',      component: a    },
    {      path: '/b',      name: 'b',      component: b    },
    {      path: '/c',      name: 'c',      component: c    },
  ]
})

【APP.vue】


<template>
  <div id="app">
    <img src="./assets/logo.png">
    <router-view/>
    <router-link to="/a">A</router-link>
    <router-link to="/b">B</router-link>
    <router-link to="/c">C</router-link>
  </div>
</template>
<script>
export default {
  name: 'App'
}
</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>

【a.vue/b.vue/c.vue】


<template>
    <div>
        <h1>组件路径A</h1>
    </div>
</template>
<template>
    <div>
        <h1>组件路径B</h1>
    </div>
</template>
<template>
    <div>
        <h1>组件路径C</h1>
    </div>
</template>

访问测试:【http://localhost:8080/#/】按钮的ABC可以切换路径

image.png


11、简单使用

在【a.vue】内测试


<template>
    <div>
        <h1>组件路径A</h1>
         <table border="1">
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>简介</td>
            </tr>
            <tr v-for="(item,key) in list" :key="key">
                <td>{{item.id}}</td>
                <td>{{item.name}}</td>
                <td>{{item.introduce}}</td>
            </tr>
        </table>
    </div>
</template>
<script>
export default {
     data(){
          return {
                  list:[
         {id:1,name:"秋兰姑娘",introduce:"兰花"},
         {id:2,name:"海棠姑娘",introduce:"海棠花"}
       ]
          }
      }
}
</script>
<style>
    table{
         width:100%;text-align:center;
    }
</style>


发现这里的用法是和纯js的写法类似的,都能用,但是这个不是咱们要的。

image.png

12、axios

需要引入内容:【import axios from 'axios'】


import axios from 'axios'

image.png


引入就报错。 需要下载【axios】

image.png



根据提示内容下载【npm install --save axios】

image.png



下载完重新启动:


在【b.vue】中测试


<template>
    <div>
        <h1>组件路径B</h1>
         <table border="1">
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>简介</td>
            </tr>
            <tr v-for="(item,key) in list" :key="key">
                <td>{{item.id}}</td>
                <td>{{item.name}}</td>
                <td>{{item.introduce}}</td>
            </tr>
        </table>
    </div>
</template>
<script>
import axios from 'axios'
export default {
    data(){
        return{
            list:""
        }
    },created:function(){
        var _this = this;
        var url = "./static/info.json";
        axios.get(url).then(
                function(res) {
                _this.list = res.data;
            });
    }
}
</script>


缺少读取的【./static/info.json】需要在【static】文件夹中添加一个【info.json】


[
    {"id":3,"name":"巧荣女士","introduce":"莫兰迪色小清新。"},
    {"id":4,"name":"王语嫣","introduce":"燕子坞学霸~"}
]

image.png

json文件是可以直接通过服务访问的:【http://localhost:8080/static/info.json】


image.png


访问一下B组件看看效果:【http://localhost:8080/#/b】


访问成功,axios解析json成功。解析接口也是一样的操作。

image.png



我有一个.net接口的案例,可以参考一下:

https://laoshifu.blog.csdn.net/article/details/113762115

包含了整套的增删改查,希望能对大家有所帮助。

相关文章
|
1天前
|
JavaScript
VUE里的find与filter使用与区别
VUE里的find与filter使用与区别
20 0
|
1天前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口
|
1天前
|
JavaScript
vue里样式不起作用的方法,可以通过deep穿透的方式
vue里样式不起作用的方法,可以通过deep穿透的方式
14 0
|
1天前
|
移动开发 JavaScript 应用服务中间件
vue打包部署问题
Vue项目`vue.config.js`中,`publicPath`设定为&quot;/h5/party/pc/&quot;,在线环境基于打包后的`dist`目录,而非Linux的`/root`。Nginx代理配置位于`/usr/local/nginx/nginx-1.13.7/conf`,包含两个相关配置图。
vue打包部署问题
|
1天前
|
JavaScript 前端开发
iconfont 图标在vue里的使用
iconfont 图标在vue里的使用
17 0
|
1天前
|
存储 JavaScript
Vue当前时间与接口返回时间的判断
Vue当前时间与接口返回时间的判断
14 0
|
1天前
|
JavaScript 前端开发
Vue生成Canvas二维码
Vue生成Canvas二维码
12 0
|
1天前
|
JavaScript
vue打印v-model 的值
vue打印v-model 的值
|
1天前
|
JavaScript
Vue实战-组件通信
Vue实战-组件通信
7 0
|
1天前
|
JavaScript
Vue实战-将通用组件注册为全局组件
Vue实战-将通用组件注册为全局组件
7 0