vue.js入门语法

1.入门

<div id="vue_det">
    <h1>site : {{site}}</h1>   //两个大括号显示参数
    <h1>url : {{url}}</h1>
    <h1>{{details()}}</h1>
</div>
<script type="text/javascript">
    var vm = new Vue({
        el: '#vue_det',       //绑定的元素的id或class
        data: {               //初始化数据
            site: "菜鸟教程",
            url: "www.runoob.com",
            alexa: "10000"
        },
        methods: {           //方法体
            details: function() {
                             //方法用data的数据用this
                return  this.site + " - 学的不仅是技术,更是梦想!";
            }
        }
    })
</script>

2.模板语法

1.v-html:输出HTML代码(v-html="<h1>菜鸟教程</h1>")
2.v-bind:输出HTML属性(v-bind:style="style='color: red;'")或(v-bind:class;id;href)
3.v-on:点击事件(v-on:click="方法名")等(submit.prevent)
4.v-model:绑定数据(v-model="data的数据")=>修饰符(v-model.lazy    .number   .trim)
5.v-if:条件语句(v-if: v-else-if: v-else:)(v-if="data的数据")
6.v-show:是否显示html

3.循环语句

<div id="app">
  <ul>
    //值 键 索引
    <li v-for="(value, key, index) in object">
     {{ index }}. {{ key }} : {{ value }}
    </li>
  </ul>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    object: {
      name: '菜鸟教程',
      url: 'http://www.runoob.com',
      slogan: '学的不仅是技术,更是梦想!'
    }
  }
})

4.计算属性

computed:obj设置{get;set;}或者函数

5.监听属性

watch: https://www.runoob.com/vue2/vue-watch.html

6.组件,封装一段html和js代码,然后以tagName标签形式调用

Vue.component(tagName, options)    https://www.runoob.com/vue2/vue-component.html

7.自定义指令 directives

<div id="app">
  <p>页面载入时,input 元素自动获取焦点:</p>
  <input v-focus>
</div>

<script>
// 创建根实例
new Vue({
  el: '#app',
  directives: {
    // 注册一个局部的自定义指令 v-focus
    focus: {
      // 指令的定义
      inserted: function (el) {
        // 聚焦元素
        el.focus()
      }
    }
  }
})
</script>

8.路由

<div id="app">
  <h1>Hello App!</h1>
  <p>
    <!-- 使用 router-link 组件来导航. -->
    <!-- 通过传入 `to` 属性指定链接. -->
    <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
    <router-link to="/foo">Go to Foo</router-link>
    <router-link to="/bar">Go to Bar</router-link>
    <router-link to="/aaa">Go to aaa</router-link>
  </p>
  <!-- 路由出口 -->
  <!-- 路由匹配到的组件将渲染在这里 -->
  <router-view></router-view>
</div>

<script>
// 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)

// 1. 定义(路由)组件。
// 可以从其他文件 import 进来
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }
const aaa = { template: '<div>aaa</div>' }

// 2. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 Vue.extend() 创建的组件构造器,
// 或者,只是一个组件配置对象。
// 我们晚点再讨论嵌套路由。
const routepath = [
  { path: '/foo', component: Foo },
  { path: '/bar', component: Bar },
  { path: '/aaa', component: aaa }
]

// 3. 创建 router 实例,然后传 `routes` 配置
// 你还可以传别的配置参数, 不过先这么简单着吧。
const router = new VueRouter({
  routes:routepath// (缩写)相当于 routes: routes
})

// 4. 创建和挂载根实例。
// 记得要通过 router 配置参数注入路由,
// 从而让整个应用都有路由功能
const app = new Vue({
  router
}).$mount('#app')

// 现在,应用已经启动了!
</script>

10.Ajax(axios)   https://www.runoob.com/vue2/vuejs-ajax-axios.html

<script type = "text/javascript">
new Vue({
  el: '#app',
  data () {
    return {
      info: null
    }
  },
  mounted () {
    axios
      .get('https://www.runoob.com/try/ajax/json_demo.json')
      //.post('https://www.runoob.com/try/ajax/demo_axios_post.php')
      .then(response => (this.info = response))
      .catch(function (error) { // 请求失败处理
        console.log(error);
      });
  }
})
</script>

//get请求设置参数直接 url?id=123
// 也可以通过 params 设置参数: axios.get('/user', { params: { ID: 12345 } }).then(function (response) { console.log(response); }).catch(function (error) { console.log(error); });

//post请求参数设置

//axios.post('/user', { firstName: 'Fred', lastName: 'Flintstone' }).then(function (response) { console.log(response); }).catch(function (error) { console.log(error); });

多个并发请求

function getUserAccount() {
  return axios.get('/user/12345');
}
 
function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // 两个请求现在都执行完成
  }));

 

posted @ 2019-10-15 16:56  世人皆萌  阅读(289)  评论(0编辑  收藏  举报