如何导入javascript文件与Vue路由器一起使用



我想知道在我的整个Vue项目中导入javascript文件的正确方法是什么,也包括在我使用Vue Router进行更改的组件中,我目前的问题是我必须重新加载组件,以便在每个组件中加载javascript,也就是说,如果我更改Route,Javascript函数只有在每个组件中执行F5时才起作用,而Router Link是不够的,我想这是因为我没有以正确的方式包含它们,并且Router View没有根据路由在每个组件加载Javascript。

这是我的index.html:

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>vue-sfi</title>
<!-- Font Awesome -->
<link rel="stylesheet" href="./static/Plugins/plugins/fontawesome-free/css/all.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<!-- Tempusdominus Bbootstrap 4 -->
<link rel="stylesheet" href="./static/Plugins/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css">
<!-- iCheck -->
<link rel="stylesheet" href="./static/Plugins/plugins/icheck-bootstrap/icheck-bootstrap.min.css">
<!-- JQVMap -->
<link rel="stylesheet" href="./static/Plugins/plugins/jqvmap/jqvmap.min.css">
<link rel="stylesheet" href="./static/Public/css/material.css">
<!-- Theme style -->
<link rel="stylesheet" href="./static/Plugins/dist/css/adminlte.min.css">
<!-- overlayScrollbars -->
<link rel="stylesheet" href="./static/Plugins/plugins/overlayScrollbars/css/OverlayScrollbars.min.css">
<!-- Daterange picker -->
<link rel="stylesheet" href="./static/Plugins/plugins/daterangepicker/daterangepicker.css">
<!-- summernote -->
<link rel="stylesheet" href="./static/Plugins/plugins/summernote/summernote-bs4.css">
<link rel="stylesheet" href="./static/Public/css/styleSGB.css">
<link rel="stylesheet" href="./static/Public/css/aside.css">
<link rel="stylesheet" href="./static/Public/css/tables.css">
<!-- Ion Slider -->
<link rel="stylesheet" href="./static/Plugins/plugins/ion-rangeslider/css/ion.rangeSlider.min.css">
<!-- Google Font: Source Sans Pro -->
<link href="https://fonts.googleapis.com/css?family=Montserrat:700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css">
</head>
<body>
<div id="app"></div>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="./static/Plugins/plugins/jquery/jquery.min.js"></script>
<!-- jQuery UI 1.11.4 -->
<script src="./static/Plugins/plugins/jquery-ui/jquery-ui.min.js"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
$.widget.bridge('uibutton', $.ui.button);
;
</script>
<!-- Bootstrap 4 -->
<script src="./static/Plugins/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- ChartJS -->
<script src="./static/Plugins/plugins/chart.js/Chart.min.js"></script>
<!-- Sparkline -->
<script src="./static/Plugins/plugins/sparklines/sparkline.js"></script>
<!-- JQVMap -->
<script src="./static/Plugins/plugins/jqvmap/jquery.vmap.min.js"></script>
<script src="./static/Plugins/plugins/jqvmap/maps/jquery.vmap.usa.js"></script>
<!-- jQuery Knob Chart -->
<script src="./static/Plugins/plugins/jquery-knob/jquery.knob.min.js"></script>
<!-- daterangepicker -->
<script src="./static/Plugins/plugins/moment/moment.min.js"></script>
<script src="./static/Plugins/plugins/daterangepicker/daterangepicker.js"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="./static/Plugins/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js"></script>
<!-- Summernote -->
<script src="./static/Plugins/plugins/summernote/summernote-bs4.min.js"></script>
<!-- overlayScrollbars -->
<script src="./static/Plugins/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script>
<!-- AdminLTE App -->
<script src="./static/Plugins/dist/js/adminlte.js"></script>
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
<script src="./static/Plugins/dist/js/pages/dashboard.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="./static/Plugins/dist/js/demo.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"></script>
<!-- Ion Slider -->
<script src="./static/Plugins/plugins/ion-rangeslider/js/ion.rangeSlider.min.js"></script>
</body>
</html>

这是我的文件结构,以防你需要知道有什么问题:

/
|--> index.html
|-->  /src
|     |--> /components    <----components Vue Router
|     |    |--> /interfaces
|     |    |    |--> /afiliacion
|     |    |         |--> afiliacion.vue
|     |    |--> /layouts
|     |         |--> /modules
|     |              |--> aside.vue
|     |              |--> footer.vue
|     |              |--> header.vue
|     |--> /router
|     |    |--> index.js <---- routes
|     |--> App.vue
|     |--> main.js
|--> /static
|--> /plugins <---- css and javascript files
|--> /public  <---- css and javascript files.

这是路由的文件。

import Afiliacion from '@/components/Interfaces/Afiliacion/Afiliacion.vue'
Vue.use(Router)
const router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'Login',
component: Login,
meta: {
requiresVisitor: true
}
},
{
path: '/logout',
name: 'Logout',
component: Logout
},
{
path: '/Home',
name: 'Layout',
component: Layout,
meta: {
requiresAuth: true
},
children:[
{
path: 'Interfaces/Afiliacion',
redirect: '/Home/Afiliacion',
name: 'Afiliaciones',
component:{
render (c){ return c('router-view') }
},
children: [
{
path: '/AfiliacionFondo',
name: 'Afiliacion',
component: Afiliacion,
meta: {
requiresAuth: true
}
}]

我已经读到CSS和Javascript应该放在src/assets文件夹中,这也许是我应该放它们的地方,但我想帮助我。

将jQuery导入vue项目的最简单方法。

安装依赖项

npm安装vue-jquery--保存

在main.js文件中

从"vue-jquery"导入vue-jquery

Vue.use(Vue-jquery(

如果你想在vue中使用外部库,你必须使用npm进行安装。然后你导入它的方式与我上面导入jQuery的方式相同。

AdminLTE Vue

这是Vue AdminLTE试试看。这里你只需要执行npm i。

https://vuejsadmin.com/product/vue2-admin-lte/

最新更新