VS2019+node.js+vue塔项目环境练手

创建项目
vs2019 选择基本vue.js Web应用程序
在这里插入图片描述
在这里插入图片描述
脚手架什么的都自动有了。

先看下
https://cli.vuejs.org/zh/guide/cli-service.html#vue-cli-service-serve

在这里插入图片描述
在这里插入图片描述

修改了下package.json对应的生成环境

“scripts”: {
“serve”: “vue-cli-service serve”,
“build”: “vue-cli-service build”,
“lint”: “vue-cli-service lint”
}
修改了下
“serve”: “vue-cli-service serve” --mode serve --copy

vue-cli-service serve 命令会启动一个开发服务器 (基于 webpack-dev-server) 并附带开箱即用的模块热重载 (Hot-Module-Replacement)。

配置也可以在根目录新建一个vue.config.js ,2种方式都是可以的

//
module.exports = {
    //开发环境
    devServer: {
        //mode1:
        proxy: 'http://192.168.0.119:8888',


        //mode2:
        //port: 8888,// 端口
        //host:'192.168.0.119',//修改了hosts文件
    }
}

cmd在当前项目目录下运行 npm run serve

在这里插入图片描述
就会根据你给的配置进行

在这里插入图片描述
PS:proxy 加了端口还是会给改成8080

在这里插入图片描述
正常浏览了。

mode的模式:
正常传参数是
vue-cli-service serve --mode development
传的是development 、test 、production

development 模式用于 vue-cli-service serve
test 模式用于 vue-cli-service test:unit
production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e

我这里使用的是
“serve”: “vue-cli-service serve” --mode serve
“serve”: “vue-cli-service serve” --mode servenew

在这种模式下加载可能存在的 .env、.env.serve[servenew] 和 .env.serve[servenew].local 文件
然后根据NODE_ENV构建出对应的环境应用。

在这里插入图片描述

环境变量 键=值对

不要在你的应用程序中存储任何机密信息
环境变量会随着构建打包嵌入到输出代码意味着任何人都有机会能够看到它
只有 NODE_ENV、BASE_URL、以 VUE_APP_

 PS:组件、配置文件等里面写汉字会乱码
    解决方法:
    ①打开该Vue组件文件所在的文件夹
    ②用记事本打开改Vue组件的文件
    ③点击右上角的:文件 ==> 另存为UTF-8 覆盖当前

输出看看

console.log("NODE_ENV",process.env.NODE_ENV)
console.log("VUE_APP_TITLE", process.env.VUE_APP_TITLE)
console.log("VUE_APP_NODE_ENV_Remark", process.env.VUE_APP_NODE_ENV_Remark)

在这里插入图片描述
在这里插入图片描述

You may use special comments to disable some warnings.
Use // eslint-disable-next-line to ignore the next line.
Use /* eslint-disable */ to ignore all warnings in a file.
您可以使用特殊注释来禁用某些警告。
使用//eslint disable next line忽略下一行。
使用/*eslint disable*/忽略文件中的所有警告。

不过就是会有异常。但是不影响页面访问。
网上说是因为 eslint 这是一个很严格语法检查工具 可以根据他给的提示去处理

1.在文件顶部加上块注释,使整个文件范围内禁止规则出现警告
<script>
/* slint-disable */
</script>

2.当前行
// eslint-disable-line
console.log("VUE_APP_TITLE", process.env.VUE_APP_TITLE) /* eslint-disable-line */
console.log("VUE_APP_NODE_ENV_Remark", process.env.VUE_APP_NODE_ENV_Remark)// eslint-disable-line

3.禁用某区域
/* eslint-disable */
alert('禁用某区域')
/* eslint-enable */

4.对指定的规则启用或禁用警告
/* eslint-disable no-alert, no-console */
alert('foo')
console.log('bar')
/* eslint-enable no-alert, no-console */

安装路由
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在src目录下创建router.js,随便准备2个页面做测试

import Vue from 'vue';//Vue 核心库导人
import VueRouter from 'vue-router'
Vue.use(VueRouter)//全局注册路由组件


import App from './App.vue'
import Test from './Test.vue'

//路由是包含路径、名称和要渲染组件的对象:
const routes = [
    { path: '/', name: '主页 ', component: App } ,
    { path: '/Test', name: '测试页', component: Test } ,
]
//注册了的路由才能正常访问


//构造函数
const router = new VueRouter({
    routes,
})

//导出
export default router

在/src/components下构建一个布局页AppLayout.vue
随意整的,不好看,不完整。。。勿喷

<template>
    <div>
        <div class="hand">组件是由vue-router 插件提供的一个特殊组件,它将渲染匹配当前路由的组件。它不是一个真正的组件,因为它没有自己的模板,并且不会出现在DOM</div>
        <div class="main"><router-view /></div>
        <div class="foot">为了提高性能,建议在范附样式中使用class</div>
    </div>
    
</template>

<script>

</script>

<style scoped>
    * {
        border:0px;
        margin:0px;
    }
    .hand, .foot {
        width:100%;
        height:100px;
        text-align:center;
    }

    .main {
        width: 100%;
        min-height:500px;
    }
</style>

<router-view /> 这就是通过路由来显示的位置

打开main.js

import Vue from 'vue';//Vue 核心库导人

import AppLayout from './components/AppLayout.vue'//布局页组件/页面导入
import router from './router.js'

new Vue({
    el: "#app",
    render: h => h(AppLayout)
    ,router//--------------------将路由提供给应用   这个地方很关键
});

访问试试吧
http://localhost:8080/#/
在这里插入图片描述
http://localhost:8080/#/Test
在这里插入图片描述

这个#看着有点别扭,还真有解决方案,打开router.js

//构造函数
const router = new VueRouter({
    routes,
    mode: 'history'
})

mode: 'history’
HTML5 的history.pushStateAPI ,我们可以摆脱这个#符号,并为应用获得一个真实的URL

http://localhost:8080/
http://localhost:8080/Test

没有#都能正常访问了。加上#再去访问会直接跳到http://localhost:8080/

书上说
浏览器需要支持这个HTML5的API,这意味着它不能在Internet Explorer 9 或更低版本上工
作(所有其他主流浏览器都已经支持它一段时间了)。
服务器必须配置为当访问诸如/faq 之类的路由时发送主页而不是抛出404 错误,因为它
并不真正存在(没有名为fag.html 的文件)。这也意味着我们将不得不自己实现404 页面。

我们可以在构造器选项中使用mode 参数更改路由器模式,可以是hash (默认)、history
或abstract 。hash 模式是我们已经在使用的默认模式。这是“最安全”的选择,因为它与任何浏览器和
服务器都兼容。好吧,改回去。。。

加上菜单

<nav class="menu">
        <ul>
            <li><router-link to="App">主页</router-link></li>
            <li><router-link to="Test">测试页</router-link></li>
        </ul>
    </nav>

在这里插入图片描述

自由切换。。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值