vueよくある質問のまとめ(一)
文書ディレクトリ一、vueパッケージ後空白解決 を表示する二、elementの小さいアイコンは を表示しません三、vue+elementパッケージ後のスタイルが混乱 四、urlパラメータの変更またはブラウザの更新、ページの変更の問題なし 五、url交換前進後退無効 五、ドメイン間 の解決
一、vueパッケージ後に空白解決を表示する
解決方法:configの下のindexを修正します.jsでbulidモジュールがエクスポートしたパス
assetsPublicPathのデフォルトは'/'つまりルートディレクトリです.私たちのindexはhtmlとstaticは同じレベルのディレクトリの下にあります.だから「./」;
npm run buildの再実行
二、element小アイコンが表示されない
解決方法:biuldの下のutilsを修正する.js,ctrl+f ExtractTextPluginを検索する.extract,このコードブロックを修正する
三、vue+elementパッケージ後のスタイルが混乱
原因はmainです.jsのimport順序により、自分で書いたスタイルが上書きされます.
次の順序を調整すればよい
四、urlパラメータの変更またはブラウザの更新、ページの変更問題なし
解決方法:
データの再取得の傍受またはforceUpdateメソッドの使用
五、url交換前進後退無効
解決方法:1.ルーティングにhistoryモードを直接設定する
2.hashモード用onhashchangeイベント、
五、ドメイン間解決
configの下のindexを修正します.jsにおけるdevモジュール
このコードを追加しないでlocalhost:8080/api/loginにアクセスし、追加するとリダイレクトします.http://xxx.xx.xx.xx:xxxx/api/login,インタフェースが/loginであれば,設定でapiを外せばよい.
一、vueパッケージ後に空白解決を表示する
解決方法:configの下のindexを修正します.jsでbulidモジュールがエクスポートしたパス
module.exports = {
build: {
index: path.resolve(__dirname, '../dist/index.html'),
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: './',
productionSourceMap: true,
devtool: '#source-map',
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
bundleAnalyzerReport: process.env.npm_config_report
}
}
assetsPublicPathのデフォルトは'/'つまりルートディレクトリです.私たちのindexはhtmlとstaticは同じレベルのディレクトリの下にあります.だから「./」;
npm run buildの再実行
二、element小アイコンが表示されない
解決方法:biuldの下のutilsを修正する.js,ctrl+f ExtractTextPluginを検索する.extract,このコードブロックを修正する
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath: '../../'
})
三、vue+elementパッケージ後のスタイルが混乱
原因はmainです.jsのimport順序により、自分で書いたスタイルが上書きされます.
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App'
import Vue from 'vue'
import router from './router'
次の順序を調整すればよい
四、urlパラメータの変更またはブラウザの更新、ページの変更問題なし
解決方法:
watch: {
'$route' (to, from) {
//
if(to.params){
// 1
//
this.getDetail();
console.log(to,this.$route.query.id)
}
}
データの再取得の傍受またはforceUpdateメソッドの使用
this.$forceUpdate(); // dom
五、url交換前進後退無効
解決方法:1.ルーティングにhistoryモードを直接設定する
2.hashモード用onhashchangeイベント、
mounted () {
// ,hash hashchange
window.addEventListener('hashchange', () => {
let currentPath = window.location.hash.slice(1)
if (this.$route.path !== currentPath) {
this.$router.push(currentPath)
}
}, false)
},
五、ドメイン間解決
configの下のindexを修正します.jsにおけるdevモジュール
const test = "http://xxx.xx.xx.xx:xxxx"; //apiurl
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: test,
changeOrigin: true,
pathRewrite: {
'^/api': '/api'
}
},
},
このコードを追加しないでlocalhost:8080/api/loginにアクセスし、追加するとリダイレクトします.http://xxx.xx.xx.xx:xxxx/api/login,インタフェースが/loginであれば,設定でapiを外せばよい.