Nuxt.js相关问题

1. 全局注册一个方法(函数) 三步搞定

  在plugins文件夹下新建一个js,如test.js 然后在里面写入如下

/**
 *  写你要的方法名
 *  然后注册进Vue
 */
import Vue from 'vue'
var test= {
    install(Vue){
        Vue.prototype.test = (val) => { // val为参数值,不用则不写
                return 'test' // 写你自己的逻辑
        };
    }
}
Vue.use(test);

  然后在nuxt.config.js文件中plugins引入

plugins: [
    { src: "~/plugins/test.js", ssr: true }
 ],

  在需要的地方直接调用test(val)就好了

2. 在Nuxt项目中使用Vant的时间选择器,出现Invalid prop: type check failed for prop "maxDate". Expected Date, got Date 错误。大致就是查找不到类型,类型失效。

  主要是因为SSR服务端渲染导致的类型校验,需要把时间选择器包在no-ssr标签中,如下

     <no-ssr>
        <van-datetime-picker
          class="picker-date"
          v-model="currentDate"
          :min-date="minDate"
          :max-date="maxDate"
          type="date"
          @cancel="showPicker = false"
        />
      </no-ssr>

 

3. 在配置webpack环境结合Node进行打包项目的时候,怎么自定义指令和环境指向?修改NODE_ENV?

第一步:先在package.json中配置scripts的指令,Demo如下:其中MODE就是自定义的值,代表NODE_ENV

    "dev": "cross-env MODE=dev nuxt",
    "build:test": "cross-env MODE=test nuxt build",
    "build:analyze": "nuxt build --analyze",
    "start": "nuxt start",

第二步:在nuxt.config.js中的env配置环境变量,Demo如下:MODE对应上面的值

/**
   * 环境变量配置
   */
  env:{
    NODE_ENV: process.env.NODE_ENV,
    MODE: process.env.MODE,
  }, 

第三步:在你需要设置对应不同值进行不同环境build的地方写入,Demo是在config.default.js中写入,如下:

  if (process.env.MODE == "dev") {
    // 本地启动环境配置
      return ENVIRONMENT_TEST;
      // return ENVIRONMENT_DEFAULT;
  } else if (process.env.MODE == "test") {
      // 测试环境配置
      return ENVIRONMENT_TEST;
  } else if (process.env.MODE == "production") {
    // 生产环境配置
    return ENVIRONMENT_DEFAULT;
  } else {
    return ENVIRONMENT_DEFAULT;
  } 

 

posted @ 2020-07-01 10:52  爱上大树的小猪  阅读(309)  评论(0编辑  收藏  举报