"中文编程"知乎专栏原链

为了检验中文命名在主流框架中的支持程度, 在vuejs官方入门教程第一部分的示例代码中尽量使用了中文命名. 所有演示都在本地测试通过, 源码在这里. 下面省略了很多原教程的说明内容, 而着重于代码示例本身. 欢迎问题/批评.

声明式渲染

  <div id="元素id">
<p>{{ 问候 }}</p>
</div>
var 应用1 = new Vue({
el: '#元素id',
data: {
问候: '吃了么?'
}
})

打开你的浏览器的控制台 (就在这个页面打开),并修改 应用1.问候,你将看到上例相应地更新。

  <div id="元素id2">
<span v-bind:title="动态绑定信息">
鼠标悬停几秒钟查看此处动态绑定的提示信息!
</span>
</div>
var 应用2 = new Vue({
el: '#元素id2',
data: {
动态绑定信息: '页面加载于 ' + new Date().toLocaleString()
}
})

再次打开浏览器的 JavaScript 控制台输入 应用2.动态绑定信息 = '新消息',就会再一次看到这个绑定了 title 属性的 HTML 已经进行了更新

条件与循环

  <div id="元素id3">
<p v-if="看得到">现在你看到我了</p>
</div>
var 应用3 = new Vue({
el: '#元素id3',
data: {
看得到: true
}
})

继续在控制台设置 应用3.看得到 = false,你会发现“现在你看到我了”消失了。

  <div id="元素id4">
<ol>
<li v-for="任务 in 任务表">
{{ 任务.内容 }}
</li>
</ol>
</div>
var 应用4 = new Vue({
el: '#元素id4',
data: {
任务表: [
{ 内容: '学习 JavaScript' },
{ 内容: '学习 Vue' },
{ 内容: '整个牛项目' }
]
}
})

警告如下, 但列表仍然显示. 已经在Vue项目新建issue

[Vue warn]: Error compiling template:

<div id="元素id4">
<ol>
<li v-for="任务 in 任务表">
{{ 任务.内容 }}
</li>
</ol>
</div> - invalid v-for alias "任务" in expression: v-for="任务 in 任务表" (found in <Root>)

在控制台里,输入 应用4.任务表.push({ 内容: '新项目' }),你会发现列表中添加了一个新项。

处理用户输入

v-on:click支持中文方法名, 但需要(). 为此在Vue项目新建issue, 经社区建议得知并检验, 另一种方式@click也支持中文命名, 同样需要().

  <div id="元素id5">
<p>{{ 问好 }}</p>
<button @click="倒着说()">@click有效</button>
<button v-on:click="倒着说()">v-on:click有效</button>
</div>
var 应用5 = new Vue({
el: '#元素id5',
data: {
问好: '你好'
},
methods: {
倒着说: function () {
this.问好 = this.问好.split('').reverse().join('')
}
}
})

表单输入和应用状态之间的双向绑定:

  <div id="元素id6">
<p>{{ 问好 }}</p>
<input v-model="问好">
</div>
var 应用6 = new Vue({
el: '#元素id6',
data: {
问好: '你好!'
}
})

组件化应用构建

  <div id="元素id7">
<ol>
<todo-item
v-for="物品 in 购物单"
v-bind:待购="物品"
v-bind:key="物品.序号">
</todo-item>
</ol>
</div>
Vue.component('todo-item', {
props: ['待购'],
template: '<li>{{ 待购.名称 }}</li>'
})
var 应用7 = new Vue({
el: '#元素id7',
data: {
购物单: [
{ 序号: 0, 名称: '蔬菜' },
{ 序号: 1, 名称: '肉' },
{ 序号: 2, 名称: '随便啥' }
]
}
})

这里的HTML标签todo-item和其他标签(如div, ol)一样, 不支持中文命名.

核心基本功能介绍结束.

后记

初步看来Vuejs对中文命名的支持不错, 尤其是模板的部分. 个别改进建议已经在Vue的github库以issue的方式提出, 社区的活跃度很高, 开发者对这些issue的反应很快, 标记上了”改进”标签, 并针对一个不支持中文命名的问题提供了解决方案.

感觉此类实践可以促进与其他开源社区的交流, 并推进框架的业务代码中对中文(Unicode)命名的支持程度.

11/20/2017 补记:

中文代码示例之Vuejs入门教程(一)问题后续

中文代码示例之Vuejs入门教程(一)的更多相关文章

  1. 2017-11-09 中文代码示例之Vuejs入门教程(一)

    "中文编程"知乎专栏原链 为了检验中文命名在主流框架中的支持程度, 在vuejs官方入门教程第一部分的示例代码中尽量使用了中文命名. 所有演示都在本地测试通过, 源码在这里. 下面 ...

  2. 2017-11-20 中文代码示例之Vuejs入门教程(一)问题后续

    "中文编程"知乎专栏原文 第一个issue: Error compiling template if using unicode naming as v-for alias · I ...

  3. 中文代码示例之Angular入门教程尝试

    原址: https://zhuanlan.zhihu.com/p/30853705 原文: 中文代码示例教程之Angular尝试 为了检验中文命名在Angular中的支持程度, 把Angular官方入 ...

  4. 2017-11-07 中文代码示例之Angular入门教程尝试

    "中文编程"知乎专栏原址 原文: 中文代码示例教程之Angular尝试 为了检验中文命名在Angular中的支持程度, 把Angular官方入门教程的示例代码中尽量使用了中文命名. ...

  5. 2018-06-21 中文代码示例视频演示Python入门教程第五章 数据结构

    知乎原链 续前作: 中文代码示例视频演示Python入门教程第四章 控制流 对应在线文档: 5. Data Structures 这一章起初还是采取了尽量与原例程相近的汉化方式, 但有些语义较偏(如T ...

  6. 2018-06-20 中文代码示例视频演示Python入门教程第四章 控制流

    知乎原链 续前作: 中文代码示例视频演示Python入门教程第三章 简介Python 对应在线文档: 4. More Control Flow Tools 录制中出了不少岔子. 另外, 输入法确实是一 ...

  7. 2018-06-20 中文代码示例视频演示Python入门教程第三章 简介Python

    知乎原链 Python 3.6.5官方入门教程中示例代码汉化后演示 对应在线文档: 3. An Informal Introduction to Python 不知如何合集, 请指教. 中文代码示例P ...

  8. 2018-08-11 中文代码示例之Spring Boot 2.0.3问好

    上次试用Spring Boot还是两年前: 中文代码示例之Spring Boot 1.3.3演示. 打算用在一个讨论组内小项目上, 于是从官网Building an Application with ...

  9. 2018-12-09 疑似bug_中文代码示例之Programming in Scala笔记第九十章

    续前文: 中文代码示例之Programming in Scala笔记第七八章 源文档库: program-in-chinese/Programming_in_Scala_study_notes_zh ...

随机推荐

  1. UWP 用Thumb 控件仿制一个可拖动悬浮 Button

    参考了 http://www.cnblogs.com/zhanggaoxing/p/6403430.html,并加以改进. 最终效果::: Thumb 的原生事件 DragStarted,DragDe ...

  2. 调参过程中的参数 学习率,权重衰减,冲量(learning_rate , weight_decay , momentum)

    无论是深度学习还是机器学习,大多情况下训练中都会遇到这几个参数,今天依据我自己的理解具体的总结一下,可能会存在错误,还请指正. learning_rate , weight_decay , momen ...

  3. c++简单编写线性表(实验)

    哇 好久没更博客了  因为从上次更文到现在为止,我一直在学c#,然后也觉得没什么太大的东西想写在博客上, 总之这次就简单的传一下学校安排的数据结构的实验,我还是学生,是新手,希望能继续跟大家一起学习, ...

  4. 数组a和&a区别

    假设我们定义一个数组char a[16]; 那么a与&a分别代表什么呢?它们完全一样吗? a其实代表的是数组中首元素的地址,即a[0]的地址,&a代表的是整个数组的起始地址.我们做个测 ...

  5. Intent启动系统组件(activity,service,BroadReceiver)-android学习之旅(四十九)

    android提供了统一的编程模型Intent来启动系统的组件,这样提供了松耦合性.是一种mvc的编程模式 $(function () { $('pre.prettyprint code').each ...

  6. 25个增强iOS应用程序性能的提示和技巧(0基础篇)

    在开发iOS应用程序时,让程序具有良好的性能是非常关键的. 这也是用户所期望的,假设你的程序执行迟钝或缓慢,会招致用户的差评.然而因为iOS设备的局限性,有时候要想获得良好的性能,是非常困难的. 在开 ...

  7. java发送post请求 ,请求数据放到body里

    java利用httpclient发送post请求 ,请求数据放到body里. /** * post请求 ,请求数据放到body里 * * @author lifq * * 2017年3月15日 下午3 ...

  8. 如何正确使用javah

    bogon:src zexu$ javah -jni -classpath /Users/zexu/github/ijkplayer/android/ijkplayer/ijkplayer-java/ ...

  9. 青否云 - 小程序待办事项vue开源系统

    青否云最新开源系统:小程序待办事项 vue-demo 青否云 vue demo 下载地址:https://github.com/qingful/vue-demo 官网 http://cloud.qin ...

  10. mybatis 之 占位符#{} 和 ${}

    #{}占位符用来设置参数,参数的类型可以有3种,基本类型,自定义类型,map基本类型作为参数,参数与占位符中的名称无关. <select id="findById" para ...