vue中引入html靜態頁面
功能:系統中需增加幫助中心頁面,由于頁面較長,需要實現錨點定位跳轉。
1、開始用的路由方式,首先在文件夾index.js里面配置靜態路由,代碼如下
{ path: '/help', component: () => import('@/page/help'), hidden: true,} //頁面代碼
幫助中心jumpTo(url){ this.$router.push({path:url}) }
2、給頁面標簽加錨點,代碼如下,發現錨點實現了,可是頁面路由變了,比如點擊標題2時,頁面路由變成:8081/#/two,再刷新頁面時會找不到該頁面。
換種方式用監聽滾動事件實現動態錨點,獲取需要滾動的距離,可能個人技術有限,最終也沒有實現。so,用vue頁面不是那么的好,網上搜了一些方法也沒有實現,由于時間問題,就放棄這種方法了。再者幫助說明,需要打開新的標簽頁才行,最后就用html來做。
3、在里面新增index.html頁面,新建css,,js文件夾,
4、 在vue頁面寫以下代碼,跳轉到html頁面
5、發版到測試環境,發現圖片和樣式無法加載,需要把圖片和樣式路徑修改,
把../css/index.css改成//css/index.css
<script type="text/javascript" src="/static/js/jquery.min.js"></script>
6、中配置文件
// copy custom static assets new CopyWebpackPlugin([ { from: path.resolve(__dirname, '../static'), to: config.build.assetsSubDirectory, ignore: ['.*'] } ])
5、點擊就可以跳轉新的頁面,并且錨點問題也解決了刷新后頁面跳轉到錨點,順帶貼個點擊菜單,給菜單加當前樣式
$(document).ready(function(){ $(".help_list .yiji").each(function(){ $(this).click(function(){ $(".help_list .yiji").parent().removeClass("active"); $(this).parent().addClass("active"); }); }); });
vue中引入html靜態頁面的一些問題
在項目中追加模塊時遇到了一些需求,追加模塊的模型做好了,但是將模型轉換成真正的頁面代碼需要一段時間,而客戶需要現在項目里看到靜態效果,就需要用到一些方法將vue引入靜態頁面。
1.最直接的方法就是在vue中嵌入html文件
通過進行引入,如下圖
在中的index.js進行設置路由跳轉(文件名為.vue)
export default new Router({ routes:[ { path:'/outfall', //路由路勁 name:'outfall', //名稱 component:outFall //跳轉組件名 } ] })
然后通過click方式進行引入跳轉
2.第二種方法.open(url)
第一種方法雖然簡單快捷還不容易出錯,但有限制,如果是在組件內點擊跳轉,會受到父組件的影響(容易變成真實頁面內的某一父元素框內嵌套了整個靜態頁面)。往往有時候刷新后頁面跳轉到錨點,需要再點擊后,將整個頁面替換成靜態頁面,這時,.open就發揮作用