中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Nuxt實現一個路由動畫效果

發布時間:2020-11-07 14:51:49 來源:億速云 閱讀:500 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關利用Nuxt實現一個路由動畫效果,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

路由的動畫效果,也叫作頁面的更換效果。Nuxt.js提動兩種方法為路由提動動畫效果,一種是全局的,一種是針對單獨頁面制作。

全局路由動畫

全局動畫默認使用page進行設置,例如現在我們為每個頁面都設置一個進入和退出時的漸隱漸現的效果。我們可以先在根目錄的assets/css下建立一個main.css文件。

/assets/css/main.css

.page-enter-active,.page-leave-active{
 transition: opacity 2s;
}
.page-enter,.page-leave-active{
 opacity: 0;
}

然后在nuxt.config.js里加入一個全局的css文件就可以了。

module.exports = {
 /*
 ** Headers of the page
 */
 head: {
 title: 'delnuxt',
 meta: [
  { charset: 'utf-8' },
  { name: 'viewport', content: 'width=device-width, initial-scale=1' },
  { hid: 'description', name: 'description', content: 'Nuxt.js project' }
 ],
 link: [
  { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
 ],
 },
 css:['~assets/css/normailze.css','~assets/css/main.css'],
 /*
 ** Customize the progress bar color
 */
 loading: { color: '#3B8070' },
 /*
 ** Build configuration
 */
 build: {
 /*
 ** Run ESLint on save
 */
 extend (config, { isDev, isClient }) {
  if (isDev && isClient) {
  config.module.rules.push({
   enforce: 'pre',
   test: /\.(js|vue)$/,
   loader: 'eslint-loader',
   exclude: /(node_modules)/
  })
  }
 }
 }
}

這時候在頁面切換的時候就會有2秒鐘的動畫效果了,但是你會發現一些頁面時沒有效果,這是因為你沒有使用<nuxt-link>組件來制作跳轉鏈接。你需要進更改。

比如改成如下:

<nuxt-link :to="{name:'news',params:{newsId:3306}}">NEWS</nuxt-link>

改過之后你就會看到有動畫效果了。

單獨設置頁面動效

想給一個頁面單獨設置特殊的效果時,我們只要在css里改變默認的page,然后在頁面組件的配置中加入transition字段即可。例如,我們想給about頁面加入一個字體放大然后縮小的效果,其它頁面沒有這個效果。

在全局樣式assets/main.css中添加以下內容。

.test-enter-active,.test-leave-active{
 transition: all 2s;
 font-size: 12px;
}
.test-enter,.test-leave-active{
 opacity: 0;
 font-size: 40px;
}

然后在about/index.vue組件中設置

<script>
export default {
 transition:'test'
}
</script>

補充知識:vue-ssr框架nuxt填坑

Nuxt.js 1.0.0 初始化與依賴包安裝

vue init nuxt/started

npm install

npm run dev

npm run dev 報錯

> nuxt-temp@1.0.0 dev E:\MaYunProject\nuxt-temp
> nuxt

E:\MaYunProject\nuxt-temp\node_modules\nuxt\dist\nuxt.js:79
async function promiseFinally(fn, finalFn) {
  ^^^^^^^^

SyntaxError: Unexpected token function
 at createScript (vm.js:56:10)
 at Object.runInThisContext (vm.js:97:10)
 at Module._compile (module.js:542:28)
 at Object.Module._extensions..js (module.js:579:10)
 at Module.load (module.js:487:32)
 at tryModuleLoad (module.js:446:12)
 at Function.Module._load (module.js:438:3)
 at Module.require (module.js:497:17)
 at require (internal/module.js:20:19)
 at Object.<anonymous> (E:\MaYunProject\nuxt-temp\node_modules\nuxt\index.js:17:20)

npm ERR! Windows_NT 10.0.14393
npm ERR! argv "G:\\node\\node.exe" "G:\\node\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev"
npm ERR! node v6.11.4
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! nuxt-temp@1.0.0 dev: `nuxt`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nuxt-temp@1.0.0 dev script 'nuxt'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the nuxt-temp package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!  nuxt
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!  npm bugs nuxt-temp
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!  npm owner ls nuxt-temp
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!  E:\MaYunProject\nuxt-temp\npm-debug.log

解決錯誤

將node 升級到 node8.12.0

升級到nuxt-edge Nuxt.js 2.0

1、運行 npm run dev報錯

  ERROR Failed to compile with 1 errors
  Module build failed (from ./node_modules/eslint-loader/index.js):
  TypeError: Cannot read property 'eslint' of undefined
   at Object.module.exports (.../node_modules/eslint-loader/index.js:148:18)

  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.

2、修正錯誤:編輯nuxt.conf.js文件并將其更改為

  - module.exports = {
  + export default {
   // ...
   build: {
    /*
    ** Run ESLint on save
    */
   - extend (config, { isDev, isClient }) {
   -  if (isDev && isClient) {
   + extend (config, { isDev }) {
   +  if (isDev && process.client) {
     config.module.rules.push({
     enforce: 'pre',
     test: /\.(js|vue)$/,
     loader: 'eslint-loader',
     exclude: /(node_modules)/
     })
    }
    }
   }
  }

3、 重啟服務,打開瀏覽器并訪問:http://localhost:3000/。

關于利用Nuxt實現一個路由動畫效果就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰镇市| 清镇市| 五大连池市| 上蔡县| 普安县| 县级市| 高阳县| 左权县| 乡宁县| 日喀则市| 绥芬河市| 胶州市| 乌兰察布市| 枞阳县| 尼木县| 泰顺县| 双桥区| 勃利县| 瑞昌市| 广东省| 博客| 无锡市| 渝北区| 凤冈县| 隆子县| 财经| 巩留县| 克拉玛依市| 泽普县| 甘谷县| 昭通市| 宜章县| 乌兰察布市| 沁源县| 军事| 大理市| 东辽县| 资讯| 甘德县| 孝昌县| 青龙|