<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      Omi新成員omi-router正式發(fā)布

      2017-03-31 09:26  【當耐特】  閱讀(1342)  評論(0)    收藏  舉報

      原文鏈接-https://github.com/AlloyTeam/omi/blob/master/tutorial

      omi-router

      omi-routerOmi框架專屬的router插件,文件尺寸輕量,使用簡便,功能強大。用于Omi制作Web單頁應用的首選解決方案。

      單頁的好處也是非常明顯:

      • 無刷新加載頁面內容
      • 無刷新前進和后退頁面
      • 路由中的某個鏈接的傳播和分享(別人看到的和你一樣的狀態(tài))
      • 轉場動畫(a標簽跳轉不僅要白屏,而且沒有轉場動畫)
      • 資源復用(單頁中的許多資源一定是可以共用的,最典型的比如omi.js,如果不是單頁的話,你需要加載多次)

      好了,好處這么多,看看怎么安裝使用吧~~

      安裝

      CDN

      可以直接通過Unpkg.com下載或引用cdn: https://unpkg.com/omi-router/dist/omi-router.js

      <script src="https://unpkg.com/omi/dist/omi.js"></script>
      <script src="https://unpkg.com/omi-router/dist/omi-router.js"></script>
      

      NPM

      npm install omi-router
      
      import Omi from 'omi'
      import OmiRouter from 'omi-router'
      

      如果使用全局的 script 標簽,則無須如此import便可使用。

      開始

      import Omi from 'omi'
      import OmiRouter from 'omi-router'
      
      import Home from './home.js'
      import About from './about.js'
      import User from './user.js'
      import UserList from './user-list.js'
      
      class App extends Omi.Component {
          install() {
              OmiRouter.init({
                  routes: [
                      {path: '/', component: Home},
                      {path: '/about', component: About},
                      {path: '/user-list', component: UserList},
                      {path: '/user/:name/category/:category', component: User}
                  ],
                  renderTo: "#view",
                  defaultRoute: '/'
              })
          }
      
          render() {
              return  `
              <div>
                  <ul>
                      <li><a omi-router to="/" >Home</a></li>
                      <li><a omi-router to="/about" >About</a></li>
                      <li><a omi-router to="/user-list" >UserList</a></li>
                  </ul>
                  <div id="view"> </div>
              </div>
              `
          }
      }
      
      Omi.render(new App(),"#__omi")
      

      這里詳細說下 OmiRouter.init 傳遞的配置參數(shù)的意義:

      參數(shù)名 意義 是否必須
      routes 路由配置。其中每一項中的path代表匹配規(guī)則,component代表渲染的組件 必須
      renderTo 組件渲染的容器 必須
      defaultRoute 如果第一次打開頁面沒攜帶hash,默認使用的地址 必須

      再看下UserList:

      import Omi from 'omi';
      
      class UserList extends Omi.Component {
      
          render() {
              return  `
            	 <ul>
            	    <li><a omi-router to="/user/yanagao/category/js" >yanagao</a></li>
                  <li><a omi-router to="/user/vorshen/category/html" >vorshen</a></li>
                  <li><a omi-router to="/user/dntzhang/category/css" >dntzhang</a></li>
              </ul>
        		`;
          }
      }
      
      Omi.tag('UserList',UserList)
      
      export default  UserList
      

      動態(tài)匹配

      模式 匹配路徑 $route.params
      /user/:name /user/dntzhang { username: 'dntzhang' }
      /user/:name/category/:category /user/dntzhang/category/js { username: 'dntzhang', category: js }

      注意: $route 會被掛載在$store下,$store會在根組件中注入,在組件樹中的任何組件都可以通過 this.$store.$route.params 訪問hash傳遞的數(shù)據(jù)。

      接著上面例子

      import Omi from 'omi'
      
      class User extends Omi.Component {
      
          beforeRender(){
              let params =  this.$store.$route.params
              this.data.name = params.name
              this.data.category = params.category
              this.info = this.queryInfo(this.data.name)
              this.data.age = this.info.age
              this.data.sex = this.info.sex
          }
      
          queryInfo(name) {
              this.mockData = {
                  'yanagao': {age: 18, sex: 'female'},
                  'vorshen': {age: 20, sex: 'male'},
                  'dntzhang': {age: 22, sex: 'male'}
              }
              return this.mockData[name]
          }
      
          back(){
              history.back()
          }
      
          render() {
              return  `
            	<div >
            	    <button onclick="back">back</button>
            	    <ul>
            	        <li>name:{{name}}</li>
            	        <li>age:{{age}}</li>
            	        <li>sex:{{sex}}</li>
            	        <li>category:{{category}}</li>
            	    </ul>
            	</div>
        		`
          }
      }
      
      
      Omi.tag('User',User)
      
      export default  User
      

      上面使用了beforeRender進行store到data的轉換,beforeRender是生命周期的一部分。且看下面這張圖:

      beforeRender

      注意:除了在constructor中不能讀取到 this.$store, 在聲明周期的任何其他函數(shù)中都能讀取到 this.$store,非常便捷。

      地址

      相關

      • Omi官網(wǎng) omijs.org
      • Omi的Github地址 https://github.com/AlloyTeam/omi
      • 如果想體驗一下Omi框架,可以訪問 Omi Playground
      • 如果想使用Omi框架或者開發(fā)完善Omi框架,可以訪問 Omi使用文檔
      • 如果你想獲得更佳的閱讀體驗,可以訪問 Docs Website
      • Omi相關的使用教程和blog,可以訪問 Omi Tutorial
      • 如果你懶得搭建項目腳手架,可以試試 omi-cli
      • 如果你有Omi相關的問題可以 New issue
      • 如果想更加方便的交流關于Omi的一切可以加入QQ的Omi交流群(256426170)

      主站蜘蛛池模板: 日韩av影院在线观看| 国产精品亚洲综合色区丝瓜 | 焉耆| 开心色怡人综合网站| 国内精品免费久久久久电影院97| 人妻丰满熟妇av无码区不卡| 国产又黄又爽又不遮挡视频| 国产精品久久久久影院亚瑟| 麻豆国产va免费精品高清在线| 男人天堂亚洲天堂女人天堂| 一本色道久久加勒比综合| 国产成人免费午夜在线观看| 午夜福利免费视频一区二区| 欧美日韩不卡合集视频| 亚洲AV日韩AV激情亚洲| 久久国产免费观看精品3| 特级毛片在线大全免费播放 | 99久9在线视频 | 传媒| 精品国产一区二区三区性色| 国产日韩精品欧美一区灰| 丝袜美腿亚洲综合第一区| 无码人妻斩一区二区三区| 韩国免费a级毛片久久| 成人午夜免费无码视频在线观看| 狠狠精品久久久无码中文字幕| 蜜臀久久99精品久久久久久| 人人做人人爽人人爱| 日韩中文字幕有码午夜美女| 中文字幕av无码不卡| 国产白嫩护士在线播放| 国产精品日韩av一区二区| 国产三级精品片| 亚洲欧美日韩高清一区二区三区| 国产女人被狂躁到高潮小说| 免费无码一区无码东京热| 欧美丰满熟妇乱XXXXX网站| 97免费在线观看视频| 一本色道国产在线观看二区| 亚洲熟妇无码另类久久久| 18禁一区二区每日更新| 综合久久婷婷综合久久|